我的用例是,我需要将数以百万计的符号存储在一个映射中,其中键是一个字符串,即
"IBM“
这个值是一个json字符串,它包含关于符号i.e的信息。
"{“符号”:"IBM","AssetType":“普通股”,“名称”:“国际商用机器公司”,}。
当使用持久化ChronicleMap来存储2500万个条目时,相对于标准的HashMap,我得到了一些糟糕的性能。
一些numbers...to在HashMap中插入了2500万条记录,大约需要70秒,而ChronicleMap则需要125秒。从HashMap读取所有条目在ChronicleMap上需要5秒vs20秒。
我将平均set /averageValue设置为合理的设置,并慷慨地将条目大小调整到5000万,因为我看到其他帖子建议也这样做。
我真的只是在问我的期望应该是什么?以上的球场数字是否与ChronicleMap相对于普通HashMap的能力是一致的?
或者我把它当作一个正常的HashMap来处理,实际上,像我输入的数据的大小这样的事情意味着我将在使用标准的HashMap & ChronicleMap之间获得不同的性能吗?
发布于 2021-01-31 20:58:44
如果要持久化数据,则HashMap没有持久化,这似乎是合理的。ChronicleMap能够提供更多的吞吐量。我会看看你用了多少线程。
ChronicleMap不是一个普通的HashMap,因为它在堆外存储数据的副本,所以它对GC没有影响。然而,每一种方式都有一个副本的成本。理想情况下,您应该将数据存储为Java对象,而不是JSon,但是它仍然可以工作。
https://stackoverflow.com/questions/65982218
复制相似问题