我有一个应用程序可以从XML加载一些数据,为此我给出了3GB的Xmx,并使用G1GC作为垃圾收集器集。
这可以正常工作,但对于占用空间较小的实例(数据远小于100 MB),即使调用GC后,内存大小仍显示为500 MB。
请参阅所附图片:
1.应用程序启动,大小=〜2.75 GB,已使用=〜1.5 GB
2.我按了两次GC,“大小”和“已用”下降了,但是即使现在,“大小”仍是“已用”的3.3倍。 (这3.3个时间也适用于更大的数据。)
我的问题是,有什么方法可以缩小“大小”和“已用内存”之间的距离,以便将未使用的内存释放到操作系统中。