【发布时间】:2017-10-05 13:08:59
【问题描述】:
我想跟踪我的应用在 android 上的某些操作的启动时间和时间。 我正在使用代码标记方法来测量我的应用程序中所有基本操作的时间。我在代码的不同位置插入了一些代码标记。每当到达代码标记时,我都会记录系统时间。然后我用开始和结束标记之间的时间差来测量启动时间和其他操作时间。
每次测量场景的时间时,我都会在毫秒时间内得到一些差异。例如,如果我在 10 次迭代中测量启动时间,我每次都会得到 1400 毫秒到 1600 毫秒范围内的不同值。
由于读数的差异,我并不总是 100% 确定我的更改是否会影响启动时间和其他操作时间。
据我所知,差异可能是由于以下原因:
- Linux 内核的 CPU 频率缩放。所以我禁用了缩放并将 scaling_governor 设置为性能。
- 由于设备上执行的其他进程而导致的资源使用情况。我也消除了这个。我使用库存的 android 操作系统,没有任何外部应用程序。在运行测试之前,我首先重新启动我的设备。因此,每次我运行测试时,我的设备上都会运行相同的一组应用程序。
- 不同的电池电量。我总是在手机 100% 充电并插入电源时运行测试。
- 此外,我每次都在同一台设备上进行测量。我有一个专门的设备来完成这项任务。
绩效衡量出现差异的其他原因可能是什么? 有没有更好的方法来衡量性能?
【问题讨论】:
标签: android performance profiling performance-testing perf