【背景】
折腾:
【记录】尝试优化antlr的lexer和parser以提高继续速度(解析性能)
期间,需要写测试代码,去测试解析时间。
即,计算一段代码的执行时间。
【解决过程】
1. 参考:
去试试,结果发现想要使用java中的字典类型的变量:
2.然后,就可以去试试代码:
import java.util.HashMap; import java.util.Map; private HashMap<String, Long> calcTimeKeyDict; //private Map<String, Long> calcTimeKeyDict; /** start calculate time */ public long calcTimeStart(String uniqueKey) { long startMilliSec = 0; startMilliSec = System.currentTimeMillis(); calcTimeKeyDict.put(uniqueKey, startMilliSec); return startMilliSec; } /** end calculate time */ public long calcTimeEnd(String uniqueKey) { long endMilliSec = System.currentTimeMillis(); long elapsedMilliSec = 0; if(calcTimeKeyDict.containsKey(uniqueKey)) { long startMilliSec = calcTimeKeyDict.get(uniqueKey); elapsedMilliSec = endMilliSec - startMilliSec; } return elapsedMilliSec; }
计算时间了。
举例:
crl.calcTimeStart("load_dd_file"); cs = new ANTLRFileStream(ddFile); long loadFileTime = crl.calcTimeEnd("load_dd_file"); //43581 ms
【总结】
java中计算代码执行时间,相对还算比较简单的。
就是获得两次当前时间,计算出时间差即可。
注:
更多java库函数,参见:
https://code.google.com/p/crifanlib/source/browse/trunk/java/crifanLib.java
转载请注明:在路上 » 【已解决】java中计算代码执行时间