最近在做一个java项目,需要处理大量的实时数据,为了效率将这些数据存放到了HashMap里。刚开始估计项目运行起来,这些HashMap可以要消耗100M以上内存,为以后的扩展带来隐患。
于是打开JDK/bin目录下的VisualVM工具,选中SpringBoot的java进程,对内存进行了分析。使用过滤器找到KLineMapBean这个java类,它仅有一个实例,在下图中可以清晰的看到每个HashMap对象使用内存的大小。整个KLineMapBean实例所需内存不到15M,远低于我的预估值。