前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HashMap最佳实践经验

HashMap最佳实践经验

作者头像
陈黎栋
发布2020-02-18 10:04:55
6230
发布2020-02-18 10:04:55
举报

实验1(主实验)-HashMap最大承载数据量测试

实验概述:

将n条随机生成的KV插入一个hashMap。

实验配置:

物理内存-24GB。

JVM使用默认配置,即最大堆内存默认为6GB(物理内存的四分之一)。

KV的长度设定和大小估算:

每个key 20个字符 , value 80个字符 , 一个KV约为2KB。

实验方法及实验现象:

随机生成并插入10 000 000 条KV(20GB),能在5分钟之内插入完成。

随机生成并插入100 000 000 条KV(200GB),在第25分钟,出现JVM内存不够的情况,无法插入完成。

实验结论及分析:

JVM最大堆内存为6GB时,只用于HashMap的对象,HashMap的对象中可以容纳原始大小超过20GB的数据,这些数据持久化的到单个磁盘文件上约为10GB(磁盘文件大小测试实验见实验2)。

从实现现象来看,HashMap有压缩等其他结约存储空间的方式。

辅助实验-实验1中HashMap存储数据量大小测试

实验概述:

实验1将n条随机生成的KV插入一个hashMap,实验2在实验1的基础上将HashMap的所有KV持久化的磁盘上。

实验配置:

物理内存-24GB。

JVM使用默认配置,即最大堆内存默认为6GB(物理内存的四分之一)。

KV的长度设定和大小估算:

每个key 20个字符 , value 80个字符 , 一个KV约为2KB。

实验方法及实验现象:

随机生成并插入10 000 000 条KV(20GB),能在5分钟之内插入完成。

将HashMap的所有KV写入自己设计的文件版KV数据库。

持久化以后的文本文件刚好为10GB。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验1(主实验)-HashMap最大承载数据量测试
  • 辅助实验-实验1中HashMap存储数据量大小测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档