gpt4 book ai didi

android - libgdx 游戏的 "Maximum memory use"非常高

转载 作者:可可西里 更新时间:2023-11-01 11:42:28 25 4
gpt4 key购买 nike

我用 libgdx 开发了一个游戏。我试图通过执行以下操作来尽可能降低内存消耗:

  1. 使用Pooling在可能的情况下。
  2. 限制 SpriteBatchsize

当我从 Android Studio 在我的手机 (Nexus 5x) 上运行游戏时,我的游戏运行流畅,内存消耗似乎确实合理:内存消耗通常低于 23MB(我看到这是通过 memory monitor )。但是,当我转到手机上的内存选项卡(设置 --> 内存 --> 应用程序使用的内存)时,我看到以下内容: enter image description here

我的游戏令人震惊的“最大内存使用量”为 1.2 GB。远高于任何其他应用。

我的问题:

  • 这个数字是什么意思?这是否意味着我的游戏一度占用了 1.2 GB 的 RAM?
  • 如果内存监视器从未显示超过 25MB 的消耗,那怎么可能呢?
  • 看到游戏运行顺利,我是否应该尝试降低这个数字?如果是,我该怎么做?

最佳答案

您混淆了 native 内存(RAM,如屏幕截图所示)和VM 内存

在内存监视器中,您只能看到堆(也就是为运行您的应用程序的 VM 分配的内存),但看不到实际的 RAM。此最大堆大小受系统限制(例如,请参见 https://stackoverflow.com/a/9940415/1096567)。

Libgdx 通过 JNI 使用 OpenGL,因此也直接使用 RAM。

一般情况下,要调查您的 RAM 使用情况,您需要内存监视器以外的其他工具,例如: How do I discover memory usage of my application in Android?

我不知道你的应用程序,但 1.2GB 似乎有点高。如果您不使用 Texture Atlases & the Texture Packer ,这可能是开始优化的好地方。还要确保释放所有 Disposables(如 BitmapFont)。 Here is a detailed list.

关于android - libgdx 游戏的 "Maximum memory use"非常高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35718632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com