我正在使用 LibGDX 开发 Android 游戏。如果我启动游戏,它可以工作,但我用此方法调试内存使用情况
Gdx.app.log("Java Heap", String.valueOf(Gdx.app.getJavaHeap()));
Gdx.app.log("Native Heap", String.valueOf(Gdx.app.getNativeHeap()));
Java 堆保持不变,但 native 堆不断攀升。我使用文本按钮、标签等在屏幕上执行 15-20 个操作。并导入图像的 .png 文件。我使用 dispose() 方法处理这些文件,但 native 堆爬得更高,我不知道内存填充了什么。
现在我的问题是给它一种方法来调试内存使用情况,还是给它一种方法来清除 dispose() 中的所有 native 堆?如果有人现在有办法提供帮助,请告诉它。
最佳答案
我尝试使用 Eclipse for Android 优化游戏的方法是通过DDMS
。有两个关键选项卡:HEAP
和 ALLOCATION TRACKER
。
Heap
会让您知道当时消耗了多少堆内存。
分配跟踪器
将跟踪内存分配,以及谁正在分配该内存的类堆栈跟踪。
还有一条黄金法则,永远不要在渲染方法中创建新对象。
关于java - LIBGDX 游戏内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34082360/