【背景】
折腾:
【记录】尝试优化antlr的lexer和parser以提高继续速度(解析性能)
期间,需要写测试代码,去测试解析时间。
即,计算一段代码的执行时间。
【解决过程】
1. 参考:
去试试,结果发现想要使用java中的字典类型的变量:
2.然后,就可以去试试代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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; } |
计算时间了。
举例:
1 2 3 | 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中计算代码执行时间