JavaScript is disabled on your browser.
Package: groovy.lang

[Java] Class BenchmarkInterceptor

  • All Implemented Interfaces and Traits:
    Interceptor

    public class BenchmarkInterceptor
    extends Object
    implements 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 Detail

      • protected Map calls

    • Method Detail

      • @Override
        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

      • @Override
        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.

      • @Override
        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]

Copyright © 2003-2025 The Apache Software Foundation. All rights reserved.

AltStyle によって変換されたページ (->オリジナル) /