gpt4 book ai didi

java - 是否可以等待 GC_FOR_ALLOCATION 完成?

转载 作者:行者123 更新时间:2023-12-01 10:00:55 25 4
gpt4 key购买 nike

我的 Libgdx Android 游戏遇到了一些问题。当我更改屏幕时,动画在新屏幕创建后立即开始。它在桌面上运行得非常好且流畅,但是当我在 Android 设备上运行它时,创建新屏幕时会出现延迟,并且看起来只是跳过了几帧动画。

经过一番调查,我发现这是因为创建新屏幕会调用许多新图像和其他要创建的对象,因此 GC_FOR_ALLOC 被调用了多次:

04-23 20:26:11.411: D/dalvikvm(18461): GC_FOR_ALLOC freed 385K, 48% free 8809K/16880K, paused 12ms, total 12ms
04-23 20:26:11.531: D/dalvikvm(18461): GC_FOR_ALLOC freed 454K, 48% free 8867K/16880K, paused 12ms, total 12ms
04-23 20:26:11.651: D/dalvikvm(18461): GC_FOR_ALLOC freed 475K, 48% free 8903K/16880K, paused 13ms, total 13ms
04-23 20:26:11.746: D/dalvikvm(18461): GC_FOR_ALLOC freed 473K, 48% free 8942K/16880K, paused 12ms, total 13ms
04-23 20:26:11.856: D/dalvikvm(18461): GC_FOR_ALLOC freed 481K, 47% free 8967K/16880K, paused 12ms, total 12ms

所以我的问题是:我可以以某种方式让我的应用程序等待这些操作完成,然后才启动动画吗?

事实上,我需要能够获取垃圾收集器的“状态”或其他内容,以便我可以在 gc 完成其分配操作后启动动画。

预先感谢您的帮助!

最佳答案

我不知道 Libgdx,但我看到它有一个 Gdx.graphics.getFramesPerSecond()方法,所以也许只有当 FPS 稳定时才能开始动画。如果该方法需要很长时间才能给出合适的平均值,也许您可​​以从 getRawDeltaTime() 开始测量自己的 FPS。 .

关于java - 是否可以等待 GC_FOR_ALLOCATION 完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36814293/

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