当前位置: 首页 > 知识库问答 >
问题:

编舞(697):跳过152帧!调试日志[重复]

赵俊侠
2023-03-14

我正在用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上,当滑动不断变化的主屏幕并拉下顶部的任务栏时,游戏会使我的手机“闪烁”。

我认为这个错误与此有关,但我不确定。你们怎么看?

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

你们觉得怎么样?

共有1个答案

蒲坚
2023-03-14

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

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

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

顺便提一下,我会提供一些到第三方工具的链接,但我是从按摩浴缸写的。我稍后会更新。

 类似资料:
  • 每当我在android emulator上运行我的应用程序时,它都会显示繁忙(我的意思是它会旋转),而且它确实需要很多时间,有时甚至会一直很繁忙 好心的人能帮帮我吗? 有没有运行速度快的android emulator版本?我的很慢?

  • 我不时会在logcat中看到类似的日志条目: 编舞跳过了35帧!应用程序可能在其主线程上做了太多工作。 我知道这条消息的含义(在这里进行了解释:Logcat中编舞消息的含义),这个问题不是关于消息的含义。 我的问题是:有多少跳过的帧太多?是否有任何指导(官方或经验)可以说50左右太多而更少是可以的?即使在速度较慢的设备上,我也没有看到任何性能下降。也许我真的不应该仅仅基于这个消息就担心性能?

  • 跳过181帧!应用程序可能在其主线程上做了太多的工作 当我运行代码并单击活动时,它会出现...为什么会出现这种情况,如何消除它?这是我的代码

  • 要开启调试日志,首先需要在配置nginx时打开调试功能,然后编译: https://www.wenjiangs.com/doc/BZ7EWB2Econfigure --with-debug ... 然后在配置文件中设置error_log的级别为debug: error_log /path/to/log debug; nginx的windows二进制版本总是将调试日志开启的,因此只需要设

  • 是否有一种方法可以为JaVers启用调试日志,这样我就可以获得比这更多的细节?

  • 调试日志 接下来的我们介绍的第二个插件是调试日志插件,该插件相对第一个复杂一些,但是因为不涉及到什么复杂的算法,还是很容易看懂的。 该插件针对输入输出处理器和调用处理器都有实现。 TypeScript 版本 import { ByteStream } from '@hprose/io'; import { Context, NextIOHandler, NextInvokeHandler } fr