public class BenchmarkInterceptor extends Object implements Interceptor
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]]
Constructor and Description |
---|
BenchmarkInterceptor() |
Modifier and Type | Method and Description |
---|---|
Object |
afterInvoke(Object object,
String methodName,
Object[] arguments,
Object result)
This code is executed after the method is called.
|
Object |
beforeInvoke(Object object,
String methodName,
Object[] arguments)
This code is executed before the method is called.
|
boolean |
doInvoke()
The call should be invoked seperately
|
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[]>.
|
protected Map calls
public Map getCalls()
public void reset()
public Object beforeInvoke(Object object, String methodName, Object[] arguments)
beforeInvoke
in interface Interceptor
object
- receiver object for the method callmethodName
- name of the method to callarguments
- arguments to the method callpublic Object afterInvoke(Object object, String methodName, Object[] arguments, Object result)
afterInvoke
in interface Interceptor
object
- receiver object for the called methodmethodName
- name of the called methodarguments
- arguments to the called methodresult
- result of the executed method call or result of beforeInvoke if method was not calledpublic boolean doInvoke()
doInvoke
in interface Interceptor
public List statistic()