【背景】
折腾:
【记录】尝试优化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中计算代码执行时间