首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我是否应该期望在内存读写中获得与标准Java相同的性能?

我是否应该期望在内存读写中获得与标准Java相同的性能?
EN

Stack Overflow用户
提问于 2021-01-31 17:33:49
回答 1查看 170关注 0票数 1

我的用例是,我需要将数以百万计的符号存储在一个映射中,其中键是一个字符串,即

"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之间获得不同的性能吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-31 20:58:44

如果要持久化数据,则HashMap没有持久化,这似乎是合理的。ChronicleMap能够提供更多的吞吐量。我会看看你用了多少线程。

ChronicleMap不是一个普通的HashMap,因为它在堆外存储数据的副本,所以它对GC没有影响。然而,每一种方式都有一个副本的成本。理想情况下,您应该将数据存储为Java对象,而不是JSon,但是它仍然可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65982218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档