测量Android代码段执行时间的最佳方法是什么?
我之前和之后都有一段代码,我想放置时间戳来找出它的执行时间(例如,活动方法中的一个onCreate()和另一个onDestroy()).
我试过了Time.toMillies(false),但它只给了我几秒钟(000最后一直是常数).我还尝试了两个java函数:System.currentTimeMillis()和System.nanoTime().第一个返回毫秒的纪元时间,第二个没有.
什么是衡量执行时间和获得良好精度的最佳方法?
Mik*_*keL 73
那么TimingLogger呢?
来自TimingLogger文档:
TimingLogger timings = new TimingLogger(YOUR_TAG, "methodA");
// ... do some work A ...
timings.addSplit("work A");
// ... do some work B ...
timings.addSplit("work B");
// ... do some work C ...
timings.addSplit("work C");
timings.dumpToLog();
Run Code Online (Sandbox Code Playgroud)
转储看起来像:
D/TAG (3459): methodA: begin
D/TAG (3459): methodA: 9 ms, work A
D/TAG (3459): methodA: 1 ms, work B
D/TAG (3459): methodA: 6 ms, work C
D/TAG (3459): methodA: end, 16 ms
Run Code Online (Sandbox Code Playgroud)
不要忘记通过运行来启用您的标记: adb shell setprop log.tag.YOUR_TAG VERBOSE
Sur*_*nav 10
Kotlin 开发人员
要以毫秒为单位获取经过的时间:
val elapsedTime= measureTimeMillis {
// call you method from here or add any other statements
}
Run Code Online (Sandbox Code Playgroud)
要获取 NanoSeconds 中的时间:
val elapsedTime= measureNanoTime {
// call you method from here or add any other statements
}
Run Code Online (Sandbox Code Playgroud)
我通常 System.nanoTime()用于快速测量。
像这样的简单设置
val startTime = System.nanoTime()
//DO SOMETHING
Log.e("Measure", TASK took : " + ((System.nanoTime()-startTime)/1000000)+ "mS\n")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22063 次 |
| 最近记录: |