gpt4 book ai didi

java - 处理Java程序中产生大量垃圾的垃圾收集

转载 作者:行者123 更新时间:2023-12-01 16:01:22 25 4
gpt4 key购买 nike

我编写了一个拼图游戏,每个拼图都使用 BufferedImage。这样做是因为它上面有特定的阴影和标记。当我组合两 block 时,我创建了一个新的 BufferedImage,在其上绘制两 block ,并丢弃对旧图像的所有引用。我的问题是,在解决一个包含 100 个左右的拼图时,程序似乎在不运行垃圾收集的情况下堆积了越来越多的内存,当它最终决定清理时,它会耗尽内存,因为剩余的空闲内存内存太少,垃圾收集无法运行。有什么方法可以告诉垃圾收集在游戏过程中更频繁地收集垃圾,而不是等到最后一刻?

最佳答案

只有没有在任何地方引用的对象才有资格进行 GC。由于 GC 将始终在 JVM 因 OutOfMemoryError 终止之前运行,这意味着您仍在当前运行的代码范围内引用占用内存的对象。解决方案很简单:在不需要它们时停止引用它们,或者在您确实需要它们时为 JVM 提供更多内存。

关于java - 处理Java程序中产生大量垃圾的垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799156/

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