首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能等待GC_FOR_ALLOCATION完成?

是否有可能等待GC_FOR_ALLOCATION完成?
EN

Stack Overflow用户
提问于 2016-04-23 17:45:36
回答 2查看 93关注 0票数 0

我在我的Libgdx Android游戏中遇到了一个小问题。当我更改屏幕时,动画会在新屏幕创建后立即启动。它在桌面上运行的很好,很流畅,但是当我在android设备上运行时,当新屏幕创建时,就会出现滞后现象,看起来就像跳过了几帧动画。

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

代码语言:javascript
复制
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完成其分配操作之后启动动画。

提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-23 19:43:04

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

票数 1
EN

Stack Overflow用户

发布于 2016-04-23 18:02:47

使用System.gc()。文档:

当控件从方法调用返回时,Java虚拟机已尽最大努力从所有丢弃的对象中回收空间。

请参阅在开始使用Java游戏之前等待GC完成吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36814293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档