Package groovy.lang
Class BenchmarkInterceptor
java.lang.Object
groovy.lang.BenchmarkInterceptor
- All Implemented Interfaces:
- Interceptor
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 SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionafterInvoke(Object object, String methodName, Object[] arguments, Object result) This code is executed after the method is called.beforeInvoke(Object object, String methodName, Object[] arguments) This code is executed before the method is called.booleandoInvoke()The call should be invoked separatelygetCalls()Returns the raw data associated with the current benchmark run.voidreset()Resets all the benchmark data on this object.Returns benchmark statistics as a List<Object[]>.
- 
Field Details- 
calls
 
- 
- 
Constructor Details- 
BenchmarkInterceptorpublic BenchmarkInterceptor()
 
- 
- 
Method Details- 
getCallsReturns the raw data associated with the current benchmark run.
- 
resetpublic void reset()Resets all the benchmark data on this object.
- 
beforeInvokeThis code is executed before the method is called.- Specified by:
- beforeInvokein interface- Interceptor
- 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.
 
- 
afterInvokeThis code is executed after the method is called.- Specified by:
- afterInvokein interface- Interceptor
- 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
 
- 
doInvokepublic boolean doInvoke()The call should be invoked separately- Specified by:
- doInvokein interface- Interceptor
- Returns:
- true
 
- 
statisticReturns 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]
 
 
-