Groovy Documentation

groovy.lang
[Java] Class BenchmarkInterceptor

java.lang.Object
  groovy.lang.BenchmarkInterceptor
All Implemented Interfaces:
Interceptor

public class BenchmarkInterceptor
extends java.lang.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 can be seen here:
 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]]
 


Field Summary
protected java.util.Map calls

 
Method Summary
java.lang.Object afterInvoke(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments, java.lang.Object result)

java.lang.Object beforeInvoke(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments)

boolean doInvoke()

java.util.Map getCalls()

Returns the raw data associated with the current benchmark run.

void reset()

Resets all the benchmark data on this object.

java.util.List statistic()

Returns benchmark statistics as a List<Object[]>.

 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

calls

protected java.util.Map calls


 
Method Detail

afterInvoke

public java.lang.Object afterInvoke(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments, java.lang.Object result)


beforeInvoke

public java.lang.Object beforeInvoke(java.lang.Object object, java.lang.String methodName, java.lang.Object[] arguments)


doInvoke

public boolean doInvoke()


getCalls

public java.util.Map getCalls()
Returns the raw data associated with the current benchmark run.


reset

public void reset()
Resets all the benchmark data on this object.


statistic

public java.util.List statistic()
Returns benchmark statistics as a List<Object[]>. AccumulateTime is measured in milliseconds and is as accurate as System.currentTimeMillis() allows it to be.
Returns:
a list of lines, each item is [methodname, numberOfCalls, accumulatedTime]


 

Groovy Documentation