我只是想知道,内存使用量变化如此之快是否正常。
我运行这个code 这是教程“如何制作一个简单的游戏。”
我在游戏的主循环中添加一些代码:
g.setColor(Color.cyan);
g.drawString(System.currentTimeMillis() + "\n\n/nRAM:[" + (runtime.totalMemory() - runtime.freeMemory()) / 1024 / 1024 + " MB]", 100, 100);
RAM 使用量在 25-30 之间变化非常快,
我的问题是为什么会发生这种情况?这是错误的行为还是无关紧要?代码是不是写错了?
编辑: 我很怀疑,因为例如这个 video 内存使用情况稳定,而且蕨菜游戏的使用情况保持不变(25mb),直到声音停止播放。
最佳答案
在 Java 中,内存管理由垃圾收集器自动处理。因此,一旦不再需要某个对象(不再有任何引用),它不会立即释放,而是保留在内存中。垃圾收集会时不时地启动并删除不需要的对象(取决于多个因素,例如 JVM 设置、最大堆大小等)。由于这种情况并非每帧都会发生,因此您会看到内存使用量不断攀升,然后随着垃圾回收的发生而突然下降。
关于java - 内存使用量变化很快,正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961110/