【发布时间】:2014-01-30 14:55:56
【问题描述】:
我正在使用 libgdx 库在 java ( Eclipse ) 中运行一个程序。 现在我意识到当程序运行大约一分钟时 FPS 从稳定的 60 下降到从 10 到 40 的反弹。此外,程序分配的内存也在不断上升。但是堆大小似乎没有增加。
我现在的问题是为什么应用程序没有将分配的内存返回给操作系统 (windows),以及分配的内存和 FrameRate 之间是否存在相关性。
这里是从 jconsole 数据中提取的图片的链接:
http://de.tinypic.com/view.php?pic=jj9z6u&s=5#.UtFp9bSFd7s
(堆栈溢出让我无法直接上传图片...)
【问题讨论】:
-
来自您的图片:25Mb 的内存并不是您所说的大量内存使用量。我会小心地得出内存使用是问题的结论。 Java 通常不会在占用内存后将内存返回给操作系统。即使它不再使用它。
-
是的,但正如您所见,这只是堆......分配的内存上升到 1.5 GB......并且还在上升......
标签: java memory-management libgdx heap-memory