Wall Clock Time 是一段代码在某个线程上实际执行的时间,但由于cpu是分时间片给线程的,同时一段代码可能由于IO,还是类似调用wait等线程调用方法,阻塞不执行了,此时cpu会分配给其它线程,但这段代码其实并没有执行完,可能等某个条件触发后,轮到这段代码在的线程分到cpu后,继续执行,而执行这段代码cpu真正的用时是Thread Time。
了解这个概念后:
- 在 Android中如何获取某个方法执行过程中的 Thread time , wall Time?
- 了解了这两个时间之后,在我们做性能优化的时候有什么指导意义?
感谢 jiafeng 的提醒更新每日一问,最近真是忙到炸!
更多问答 >>
-
每日一问 | onDraw 里面调用 invalidate 做动画,有什么问题?
2021-04-13 00:31 -
每日一问 | mipmap vs drawable,傻傻分不清楚?
2021-03-30 21:14 -
2021-04-08 00:25
-
每日一问 | 听说你做过内存优化 之 Bitmap内存占用到底在哪?
2021-04-19 23:40 -
2021-05-06 00:16
-
2021-03-18 23:20
-
每日一问 | 今天还探索一个 View 的方法 hasOverlappingRendering()
2021-02-21 20:16 -
每日一问 | 类要先加载、链接、初始化才能实例化,有特殊Case吗?
2021-02-21 20:15 -
2021-01-31 16:58
-
每日一问 | Android 中两种设置线程优先级的方式,有何区别?
2021-01-27 23:59

没有,下一个
Thread time : SystemClock.currentThreadTimeMillis()
wall Time : System.currentTimeMillis()抛砖引玉一下:
1.Wall Clock Time就是线程从开始到结束的时间,可以通过在run方法前后插入代码的方式统计到耗时;Thread time是线程执行的真实时间,as的Profiler能查看到线程执行的Thread time,理论上也能够通过代码拿到的,不过没百度到。。2.个人认为这两个时间的比值有一定的分析意义,如果Wall Clock Time/Thread time很大,那么就说明这个线程一直在等待锁或者休眠,或者当前运行的线程很多很多,导致其分配到的cpu时间很大,如果一直等待锁或者休眠可以考虑使用任务调度的方式来实现,而不是直接创建线程,cpu时间分配的过少,就只能根据任务的优先级考虑提高优先级,并且要控制总的线程数量。等待大佬的见解。。。