40亿数据Map插入

本文通过实验对比了Java中不同Map实现(TreeMap, HashMap, MapDB)在插入大量数据时的性能和内存利用率。结果显示,MapDB在非堆内存模式下,经过优化后可以处理超过30亿条记录,甚至在启用额外压缩的情况下,仍能存储约6亿条随机序列的记录,表现出优于基于堆的集合的性能。" 109764942,9035042,使用Logstash与MySQL数据同步实战,"['数据同步', 'Logstash', 'MySQL', 'Elasticsearch', '数据库管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文:
http://kotek.net/blog/3G_map
思考Java中内存管理的问题,以及Java集合对内存使用的效率情况。我做了一个简单的实验,测试在16G内存条件下,Java的Map可以插入多少对象。这个试验的目的是为了得出集合的内部上限。所以,我决定使用很小的key和value。所有的测试,都是在64w位linux环境下进行的,操作系统是ubuntu12.04。JVM版本为Oracle Java 1.7.0_09-bo5 (HotSpot 23.5-b02)。在这个JVM中,压缩指针(compressed pointers(-XX:+UseCompressedOops))的选项是默认打开的。
首先是简单的针对java.util.TreeMap的测试。不停向其中插入数字,直到其抛出内存溢出异常。JVM的设置是-xmx15G

import java.util.*;   
Map m = new TreeMap();  
for(long counter=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值