public class BenchmarkInterceptor extends Object
Interceptor that registers the timestamp of each method call before and after invocation. The timestamps are stored internally and can be retrieved through the with the
getCalls()and
statistic()API.
Example usage:
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()Which produces the following output:
[[size, 4, 0], [set, 4000, 21]]
Type | Name and description |
---|---|
Object |
afterInvoke(Object object, String methodName, Object[] arguments, Object result) |
Object |
beforeInvoke(Object object, String methodName, Object[] arguments) |
boolean |
doInvoke() |
Map |
getCalls() Returns the raw data associated with the current benchmark run. |
void |
reset() Resets all the benchmark data on this object. |
List |
statistic() Returns benchmark statistics as a List<Object[]>. |
Returns the raw data associated with the current benchmark run.
Resets all the benchmark data on this object.
Returns benchmark statistics as a List<Object[]>. AccumulateTime is measured in milliseconds and is as accurate as System.currentTimeMillis() allows it to be.