在移动设备上运行的程序,我们一般都比较关注它所耗的性能,所以,在写Android程序的时候,有时候我们会看某个操作用了多长时间。一般的做法是,在这个操作之前获取一下系统的时间,然后在这个操作之后在获取一下系统时间,然后取差值。这么做并没有什么错,其实,Android的开发者已经给我们封装好了一个类,那就是TimingLogger类,使用它可以很方便地打印某个操作的耗时。
它的用法很简单,下面的源码注释中有:
TimingLogger timings = new TimingLogger(TAG, "methodA");
// ... do some work A 操作A...
timings.addSplit("work A");
// ... do some work B 操作B...
timings.addSplit("work B");
// ... do some work C 操作C...
timings.addSplit("work C");
timings.dumpToLog();
所以呢,使用它分3步:
- new一个TimiLogger对象;
- 在需要打印时间的地方调用addSplit(String splitLabel)方法;
- 调用dumpToLog()打印日志。
还是举个栗子吧,看看1000000次空循环会用多长时间:
TimingLogger timing = new TimingLogger("timing","loop");
for (int i=0;i<1000000;) {
i++;
}
timing.addSplit("end loop");
timing.dumpToLog();
打印出来的日志是这个格式的:
用了1ms,还挺快。但是,使用的时候会发现,貌似打印不出log,没关系,在命令行输入这条命令:
adb