[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

Timing macros for runtime measurements |

#include <vigra/timing.hxx>

These macros allow to perform execution speed measurements. Results are reported in milliseconds. However, note that timings below 1 msec are generally subject to round-off errors. Under LINUX, you can #define VIGRA_HIRES_TIMING to get better accuracy, but this requires linking against librt.

Basic usage:

       void time_it()
       {
           USETICTOC

           TIC
            ...    code to be timed
           TOC
            ...    untimed code
           TIC
            ...    other code to be timed
           TOC
       }

Instead of TOC, which outputs the time difference to std::cerr, you may use TOCN (the time difference in msec as a double) or TOCS (the time difference as a std::string).

Alternatively, you can perform nested timing like so:

       void time_it()
       {
           USE_NESTED_TICTOC

           TICPUSH
            ...         code to be timed
               TICPUSH
                ...         nested code to be timed
               TOC          print time for nested code
            ...         more code to be timed
           TOC          print total time
       }

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany | html generated using doxygen and Python vigra 1.9.0 (Tue Nov 6 2012)