[Java] Class BenchmarkInterceptor

  • groovy.lang.BenchmarkInterceptor
All Implemented Interfaces and Traits:
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

Fields
Modifiers Name Description
protected Map calls

Methods Summary

Methods
Type Params Return Type Name 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 separately
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[]>.

Inherited Methods Summary

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

Field Detail

protected Map calls

Method Detail

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

This code is executed after the method is called.

Parameters:
object - receiver object for the called method
methodName - name of the called method
arguments - arguments to the called method
result - result of the executed method call or result of beforeInvoke if method was not called
Returns:
result

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

This code is executed before the method is called.

Parameters:
object - receiver object for the method call
methodName - name of the method to call
arguments - arguments to the method call
Returns:
null relays this result.

public boolean doInvoke()

The call should be invoked separately

Returns:
true

public Map getCalls()

Returns the raw data associated with the current benchmark run.

public void reset()

Resets all the benchmark data on this object.

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]

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.4.21/html/gapi/groovy/lang/BenchmarkInterceptor.html