Groovy 2.2.0

groovy.lang
[Java] Class BenchmarkInterceptor

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

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]]
 


Field Summary
protected Map calls

 
Method Summary
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[]>.

 
Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Field Detail

calls

protected Map calls


 
Method Detail

afterInvoke

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


beforeInvoke

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


doInvoke

public boolean doInvoke()


getCalls

public 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 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]


 

Copyright &copy; 2003-2013 The Codehaus. All rights reserved.