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), java.lang.Object#wait(long, int), 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