我正在为基于Groovy的应用程序编写某种探查器。为此,我对在各种类方法中花费多少处理时间感兴趣。
现在,通过获取方法调用的开始和结束时间,可以简单地测量在每种方法中花费的纳秒。但是,这感觉很笨拙,我不想花时间在方法之外(例如,在调用之前和之后)。我宁愿测量班级内部的时间,也不想通过开始和结束时间来“手动”测量,如果可能的话,而是“自动”测量。
所以我的问题是:衡量类中各种方法所花费时间的最好,最时髦的方法是什么?也许通过注释?
Groovy附带BenchmarkInterceptor:
拦截器,用于注册调用前后每个方法调用的时间戳。时间戳记存储在内部,可以通过和进行检索。
getCalls()
和
statistic()
API。
用法示例:
def proxy = ProxyMetaClass.getInstance(ArrayList.class) proxy.interceptor = new BenchmarkInterceptor() proxy.use { def list = (0..10000).collect{ it } 4.times { list.size() } 4000.times { list.set(it, it+1) } } proxy.interceptor.statistic()
产生以下输出:
[[size, 4, 0], [set, 4000, 21]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句