基准测试冷启动时间

6

我希望能够在基准测试中本地测量冷启动应用程序的时间(中位数时间,尽量避免过多抖动)。有人知道使用Jetpack基准测试库是否可以可靠地测量冷启动应用程序的时间吗?如果可以,该如何操作?我知道,使用Firebase性能插件,我们可以测量一些中位数启动时间,但我想要在本地测量这些改进。

我只能想到通过adb多次启动应用程序并从logcat中测量第一个ActivityManager: Displayed的脚本...

2个回答

1
您可以使用Jetpack Macrobenchmark库,它允许对您所描述的内容进行基准测试。您可以调整应用程序的启动模式甚至编译状态。每个基准测试都会在设备上保存系统跟踪信息,并输出到Android Studio中,因此很容易深入了解启动期间发生的情况。
Jetpack Benchmark库(已更名为Jetpack Microbenchmark)更适合对热代码(JIT编译、磁盘缓存、优化)进行基准测试。

1
我相信您可以使用Android Profiler获得相当准确的结果,例如在此处(下图),启动主要活动需要4.233秒。我认为难点将是解析分析器结果,您可以在此处阅读更多信息:https://android.googlesource.com/platform/system/extras/+/master/simpleperf/doc/README.md 但请注意,应用程序启动时间可能因设备、配置、操作系统状态等而大不相同...因此,我认为最好的方法是在各种设备上进行测量(使用Firebase性能等工具)。我认为这是您可以获得有用见解的唯一途径。

这就是为什么我想在本地运行基准测试,以便我们可以在特定设备上获得某个平均启动时间。这样我就可以进行测量和改进。如果我只运行一次或在不同的设备上运行,我实际上没有任何新的东西。无论如何,还是谢谢! - Viconic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接