【问题标题】:Libgdx ShapeRenderer lagLibgdx ShapeRenderer 滞后
【发布时间】:2017-01-19 22:40:17
【问题描述】:

我使用 LibGDX 框架为 android 创建了一个简单的游戏。不幸的是,游戏有时会在短时间内开始卡顿,这会破坏体验。我认为这可能是由于垃圾收集造成的,所以我查看了内存监视器:

分配的内存从 10mb 不断增加,直到达到内存限制,然后又回落到 10mb。看看列表中领先的堆是 FinalizerReference 的巨大优势。

我真的不知道这是从哪里来的。我还没有编写任何带有 finalize 的类,我也使用 LibGDX 提供的池化功能来减少创建对象的数量。实际上,您可以在列表中看到我的 Objects Spinner 中最昂贵的一个,它固定为 8。我已经阅读了有关类似问题的所有其他线程,但我没有找到实际的解决方案。

感谢任何形式的帮助! 如果需要,我可以提供更多信息!

编辑

  • 更改了标题以适应实际问题

【问题讨论】:

  • 唯一的选择是检查您的代码并留意不需要的对象创建。

标签: java android memory-leaks libgdx finalizer


【解决方案1】:

所以我解决了口吃问题。睡了一夜好觉后,我决定再看看我的渲染,结果发现我在渲染简单形状时使用了相当多的 ShapeRenderer 导致了延迟。我用 SpriteBatch 调用替换了所有 ShapeRenderer 调用,编写了自己的方法来绘制线和圆,现在它运行顺利。

堆转储仍然显示 FinanziererReferences 占用了大量内存,并且 I 空间仍在增长,尽管应用程序空闲但口吃消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    相关资源
    最近更新 更多