Time Profiler - 等待应用启动
Posted
技术标签:
【中文标题】Time Profiler - 等待应用启动【英文标题】:Time Profiler - Wait for app launch 【发布时间】:2013-07-30 18:18:38 【问题描述】:从自定义 URL 方案启动我的应用程序时,当应用程序没有后台运行时,启动序列花费的时间比我想要的要长。我想使用时间分析器来查看哪些方法需要这么长时间。我知道在运行时有一个“等待应用程序启动”选项,所以我可以使用 URL 启动它,但我在分析方案下看不到它。有谁知道我可以使用 URL 重新启动应用程序并在启动时运行时间分析器的方法?
【问题讨论】:
此方法可能对您有所帮助:***.com/questions/8725625/simulate-launch-options 您可以编辑方案以等待您启动应用程序,然后再将调试器附加到进程。 【参考方案1】:“看看哪些方法需要这么长时间”
您是否认为某些方法(或一些方法)本身或调用其他方法会占用大量 CPU 时间? 如果是这样,它会很容易修复,但不太可能。
时间更有可能花在某种 I/O 上,您需要弄清楚为什么,而不是在哪里。
如果您能够在调试器下启动它(比如使用@ChrisTruman 的建议),那么您需要做的就是使用 Ctrl-C、Ctrl-Break、Escape 或任何组合键来中断它。 在主观上它很慢的时候执行此操作。
让我们假设启动所需的时间比您想象的要长三倍。 如果是这样,这意味着三分之二的时间都花在了不必要的 I/O 或其他任何事情上。 这意味着每次你打断它时,有 2/3 的概率你会在做任何导致缓慢的行为时抓住它。 所以中断它几次,每次只是读取堆栈,查看变量等。 你会看到为什么它很慢。 甚至不要寻找 where - 它会自行出现。
这就是this technique背后的基本理念。
【讨论】:
以上是关于Time Profiler - 等待应用启动的主要内容,如果未能解决你的问题,请参考以下文章
Xcode Time Profiler 的详细信息面板显示“main”是应用程序运行缓慢的原因,但没有在其中显示单独的方法调用。