使用Android仪器测试测量性能

Den*_*hin 8 android performance-testing android-instrumentation

我的目标是使用工具测试(AndroidJUnitRunner)为Android CPU密集型代码编写自动性能测试.

我很惊讶地发现测试结果不可靠,模拟CPU密集型代码,我想测试一下,我写了下面的循环

for(int i=0;i<1000000;i++){
    Math.pow(2,i);
}
Run Code Online (Sandbox Code Playgroud)

该代码在Android应用程序中作为工具测试进行了测试

我得到的结果如下:

仪器测试显示〜230ms完成循环,而同一设备(G5)上的相同代码耗时约600ms

我将非常感谢为什么AndroidJUnitRunner上相同代码的执行时间比真实设备少三倍,而它们最终都在同一台设备上执行

Man*_*mar 5

简单来说,速度来自CPU,而你正在执行一些代码,如果CPU没有做任何繁重的工作并且所有CPU内核都已启动,它将很快执行你的代码.在Android中,"UI渲染"是最AndroidJUnitRunner没有做的最密集的工作,这就是它快速的原因.

如果你想了解android在不同场景中的表现,请看看:https://www.youtube.com/playlist?list = PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE