gpt4 book ai didi

java - 减少 Java 堆大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:45:53 25 4
gpt4 key购买 nike

我有一个应用程序,它使用大量内存来区分两个可能巨大的 (100k+) 目录的内容。对我来说,这样的操作会使用大量内存是有道理的,但是一旦我的差异操作完成,堆就会保持相同的大小。

我基本上有代码实例化一个类来存储源和目标上每个文件的文件名、文件大小、路径和修改日期。我把增删改查保存在其他数组中。然后我 clear() 我的源数组和目标数组(现在可能每个都超过 100k),留下相对较小的添加、删除和更新数组。

不过,在我clear() 我的目标和源数组之后,内存使用率(通过 VirtualVM 和 Windows 任务管理器可见)并没有下降。我对 VirtualVM(或与此相关的任何分析器)没有足够的经验来弄清楚是什么占用了所有这些内存。 VirtualVM 的堆转储列出了保留大小为几兆字节的前几个对象。

有什么可以帮助我指明正确方向的吗?

最佳答案

如果使用过的堆在垃圾回收后下降,那么它可能会按预期工作。 Java 在需要更多内存时增加其堆,但不释放它——它更愿意保留它以防应用程序再次使用更多内存。参见 Is there a way to lower Java heap when not in use?对于这个主题,为什么heap使用量减少后heap没有减少。

关于java - 减少 Java 堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26582859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com