2

从自定义 URL 方案启动我的应用程序时,当应用程序没有后台时,启动序列花费的时间比我想要的要长。我想使用时间分析器来查看哪些方法需要这么长时间。我知道在运行时有一个“等待应用程序启动”选项,因此我可以使用 URL 启动它,但在分析方案下我看不到它。有谁知道我可以使用 URL 重新启动应用程序并在启动时运行时间分析器的方法?

4

1 回答 1

-1

“看看什么方法需要这么长时间”

您是否认为某些方法(或一些方法)本身或调用其他方法会占用大量 CPU 时间?如果是这样,它会很容易修复,但它不太可能。

更有可能时间花在某种 I/O 上,您需要弄清楚为什么,而不是在哪里

如果您能够在调试器下启动它(例如通过使用@ChrisTruman 的建议),那么您需要做的就是使用 Ctrl-C、Ctrl-Break、Escape 或任何可中断它的组合键来中断它。在主观上它很慢的时候这样做。

让我们假设启动时间比您认为的要长三倍。如果是这样,这意味着三分之二的时间都花在了不必要的 I/O 或其他任何事情上。这意味着每次你打断它时,有 2/3 的概率你会在做任何导致缓慢的行为时抓住它。所以中断它几次,每次只读取堆栈,查看变量等。你会明白为什么它很慢。甚至不要寻找哪里- 它会自行出现。

这就是这项技术背后的基本思想。

于 2013-07-31T13:48:38.317 回答