Provided by: libdispatch-dev_0~svn197-3.3ubuntu2_amd64 bug

NAME

     dispatch_benchmark — Measures block execution time

SYNOPSIS

     #include <dispatch/dispatch.h>

     uint64_t
     dispatch_benchmark(size_t count, void (^block)(void));

     uint64_t
     dispatch_benchmark_f(size_t count, void *context, void (*function)(void *));

DESCRIPTION

     The dispatch_benchmark() function executes the given block multiple times according to the
     count variable and then returns the average number of nanoseconds per execution.  This
     function is for debugging and performance analysis work.  For the best results, pass a high
     count value to dispatch_benchmark().  When benchmarking concurrent code, please compare the
     serial version of the code against the concurrent version, and compare the concurrent
     version on different classes of hardware.  Please look for inflection points with various
     data sets and keep the following facts in mind:

              Code bound by computational bandwidth may be inferred by proportional changes in
               performance as concurrency is increased.
              Code bound by memory bandwidth may be inferred by negligible changes in
               performance as concurrency is increased.
              Code bound by critical sections may be inferred by retrograde changes in
               performance as concurrency is increased.
                        Intentional: locks, mutexes, and condition variables.
                        Accidental: unrelated and frequently modified data on the same cache-
                         line.

RETURN VALUE

     The dispatch_benchmark() function returns the average number of nanoseconds the given block
     takes to execute.

SEE ALSO

     dispatch(3)