java - LIBGDX 游戏内存泄漏

标签 java memory-leaks libgdx

我正在使用 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。有两个关键选项卡:HEAPALLOCATION TRACKERHeap会让您知道当时消耗了多少堆内存。 分配跟踪器将跟踪内存分配,以及谁正在分配该内存的类堆栈跟踪。

还有一条黄金法则,永远不要在渲染方法中创建新对象。

关于java - LIBGDX 游戏内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34082360/

相关文章:

java - 你如何在 LibGDX 中移动形状?

java - 在下拉列表始终可见的 JTable 中创建 JComboBox

android - 应用程序中的内存泄漏(下载、保存和在它们之间循环)

java - 如何将 ScrollView 添加到我的 xml 中?

c++ - 这段代码有什么问题?为什么显示 : Debug assertion failed! _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)?

c# - Finalizer 没有被一次性类型对象调用

java - 使用 xuggler 解码音频/视频时出现断断续续的音频

java - 如何将 Libgdx 游戏部署到 iOS

java - 使用内联链接文档将 html 转换为 pdf

java - 解析 Hibernate Man.hbm.xml 时出错