libgdx 游戏非常高 "Maximum memory use"
Very high "Maximum memory use" for libgdx game
我用 libgdx
开发了一款游戏。我尝试通过执行以下操作来尽可能降低内存消耗:
当我从 Android Studio
运行 我的 phone (Nexus 5x) 上玩游戏时,我的游戏 运行 很流畅,看来内存消耗确实合理: 内存消耗通常低于 23MB(我通过 memory monitor 看到了这一点)。但是,当我转到 phone 上的内存选项卡(设置 --> 内存 --> 应用程序使用的内存)时,我看到以下内容:
我的游戏 "Maximum memory use" 1.2 GB 令人震惊。远远高于任何其他应用程序。
我的问题:
- 这个数字是什么意思?这是否意味着我的游戏一度占用了 1.2 GB 的 RAM?
- 如果内存监视器从未显示超过 25MB 的消耗,那怎么可能呢?
- 看到游戏 运行 顺利,我应该尝试降低这个数字吗?如果是,我该怎么做?
您混淆了本机内存(RAM,如屏幕截图所示)和VM 内存。
在内存监视器中,您只能看到堆(因此分配给您的应用所在的 VM 的内存 运行),但看不到实际的 RAM。此最大堆大小受系统限制(参见 示例)。
Libgdx 通过 JNI 使用 OpenGL,因此也直接使用 RAM。
要调查您的 RAM 使用情况,您需要内存监视器以外的其他工具,例如:
How do I discover memory usage of my application in Android?
我不知道你的应用程序,但 1.2GB 似乎有点高。如果您不使用 Texture Atlases & the Texture Packer, it's probably a good place to start optimizing. Also be sure to dispose all Disposables
(like BitmapFont
). Here is a detailed list.
我用 libgdx
开发了一款游戏。我尝试通过执行以下操作来尽可能降低内存消耗:
当我从 Android Studio
运行 我的 phone (Nexus 5x) 上玩游戏时,我的游戏 运行 很流畅,看来内存消耗确实合理: 内存消耗通常低于 23MB(我通过 memory monitor 看到了这一点)。但是,当我转到 phone 上的内存选项卡(设置 --> 内存 --> 应用程序使用的内存)时,我看到以下内容:
我的游戏 "Maximum memory use" 1.2 GB 令人震惊。远远高于任何其他应用程序。
我的问题:
- 这个数字是什么意思?这是否意味着我的游戏一度占用了 1.2 GB 的 RAM?
- 如果内存监视器从未显示超过 25MB 的消耗,那怎么可能呢?
- 看到游戏 运行 顺利,我应该尝试降低这个数字吗?如果是,我该怎么做?
您混淆了本机内存(RAM,如屏幕截图所示)和VM 内存。
在内存监视器中,您只能看到堆(因此分配给您的应用所在的 VM 的内存 运行),但看不到实际的 RAM。此最大堆大小受系统限制(参见 示例)。
Libgdx 通过 JNI 使用 OpenGL,因此也直接使用 RAM。
要调查您的 RAM 使用情况,您需要内存监视器以外的其他工具,例如: How do I discover memory usage of my application in Android?
我不知道你的应用程序,但 1.2GB 似乎有点高。如果您不使用 Texture Atlases & the Texture Packer, it's probably a good place to start optimizing. Also be sure to dispose all Disposables
(like BitmapFont
). Here is a detailed list.