在一些耗时的操作中,我们需要计算方法运行了多少时间,以便于我们分析代码。常规的方法主要是在方法(函数)执行前得到当前时间戳 startTime ,方法执行后再次取当前时间 endTime , 方法运行时间 runTime = endtime - startTime ,见下面代码。
long startTime = System.currentTimeMillis(); //起始时间 doSomething(); long endTime = System.currentTimeMillis(); //结束时间 long runTime = endTime - startTime; Log.i("test", String.format("方法使用时间 %d ms", runTime));统计方法少的时候,这个方法还是比较好的,也就是做一些简单预算,但需要统计的方法多了,就要重写一些 long startTime 、 long endTime、System.currentTimeMillis() ,再简单的事情重复多了也会厌烦,就想着在上面的代码简单封装下,达到只调用一个方法,就能统计方法运行时间。
先创建一个接口和一个方法。
public interface CallBack { //执行回调操作的方法 void doSometing(); } public static void countTime(CallBack callBack) { long startTime= System.currentTimeMillis(); //起始时间 callBack.doSometing(); ///进行回调操作 long endTime = System.currentTimeMillis(); //结束时间 log.i("test",String.format("方法使用时间 %d ms", endTime - startTime)); //打印使用时间 }在需要计算时间的地方就可以调用了 ,
countTime(new CallBack() { @Override public void doSometing() { //耗时的操作方法 do(); } });记录一下,以便于查看