【问题标题】:Choreographer(697): Skipped 152 frames! Debug log [duplicate]编舞(697):跳过152帧!调试日志 [重复]
【发布时间】:2013-02-01 02:34:20
【问题描述】:

我正在使用 andengine 构建一个新游戏,出于某种原因,我在 logcat 中不断收到此调试语句:

01-31 21:29:50.503: I/Choreographer(697): Skipped 152 frames!  The application may be doing too much work on its main thread.

我不太确定在我的游戏过程中究竟是什么导致了这个错误。我正在检查很多碰撞,但直到游戏场景开始后它们才开始。

我还注意到,在我的 Galaxy S3 上,当滑动更改主屏幕并拉下顶部的任务栏时,游戏会导致我的手机“闪烁”。

我认为这个错误与它有关,但我不确定。大家觉得呢?

此外,每次用户进入另一个级别时,我都会重新初始化碰撞检测器。但我不会取消注册或停止最后一次开始的碰撞。我认为当新的初始化时它们会自动清理。

你们觉得呢?

【问题讨论】:

  • 你确定这条消息是AndEngine输出的吗? AndEngine 通过标签“AndEngine”而不是“Choreographer”输出其消息。

标签: android andengine


【解决方案1】:

听起来您知道消息在告诉您什么,即您的帧速率滞后。你的后续问题,“为什么?”如果没有更多信息,将无法回答。您提供了一些可能性:是碰撞处理吗?是处理不必要的碰撞吗?是不是场景转换有问题?答案是,也许。也许是这些事情中的任何一个。也许是别的东西。目前我们所能做的就是猜测,因为我们没有看代码。

但好消息是,您并非没有追索权!您需要做的是测试您的代码并找出瓶颈所在。一个好的开始是进行一些调用来计算您怀疑是问题的代码块之间的毫秒数。你可能会发现,你认为我们很慢的事情实际上发生得很快,相反,你认为很快的事情正在慢慢发生。专注于后者!在那里打更多电话,看看到底哪里需要更长的时间。并查看您的代码,看看为什么它可能在那里运行缓慢。那里有很多对象被实例化吗?它是从磁盘读取的吗?等等。

当您准备好使用它们时,有一些很棒的第三方工具可以让您更深入地进行测试,但值得花一些时间来记录和检查您自己的代码。作为作者,您具有怀疑问题可能出在哪里的优势。开始调查!

旁注,我会提供一些第三方工具的链接,但我是在按摩浴缸中写的。我稍后会更新。

【讨论】:

  • -1 用于从按摩浴缸写作 :)
  • +1 啤酒,我将在 9 月和你一起在洛杉矶喝啤酒
猜你喜欢
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
相关资源
最近更新 更多