写了一个demo,用traceview对里边的print()方法进行测试,最后的时间显示只是180ms。在print()方法前后使用System.currentTimeMillis()方式,时间值相差太远,原因是traceview在stopMethodTracing结束时候需要占用时间将缓存中的信息输出到*.trace文件中。
android.os.Debug.startMethodTracing("MainActivity-print");
long start = System.currentTimeMillis();
print();
android.os.Debug.stopMethodTracing();
long end = System.currentTimeMillis();
Log.i(LOG_TAG, "execute long : " + (end - start));使用traceview测试时间为180ms

使用System.currentTimeMillis()方式进行为1105ms.
原因就在于
android.os.Debug.stopMethodTracing();调用时,会消耗时间去将缓存中的内容输出到外部存储文件中。
本文探讨了使用Android Debug Tracing工具进行方法跟踪时,如何正确理解其对应用性能的影响,通过对比使用traceview与System.currentTimeMillis()测量时间的方法差异,揭示了traceview在停止跟踪时需要额外时间将缓存内容输出到外部存储文件的过程。
1007

被折叠的 条评论
为什么被折叠?



