Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset a362c16 in mainline


Ignore:
Timestamp:
2019-01-03T10:24:23Z (2 years ago)
Author:
Vojtech Horky <vojtech.horky@…>
Branches:
lfn, master
Children:
f85546d
Parents:
60029df
Message:

perf: a bit of documentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/perf/doc/doxygroups.h

    r60029df ra362c16  
    22 * @brief User space performance measuring tool
    33 * @ingroup apps
     4 *
     5 * @details
     6 *
     7 * To add a new benchmark, you need to implement the actual benchmarking
     8 * code and register it.
     9 *
     10 * Registration is done by adding
     11 * <code>extern benchmark_t bench_YOUR_NAME</code> reference to benchlist.h
     12 * and by adding it to the array in benchlist.c.
     13 *
     14 * The actual benchmark should reside in a separate file (see malloc/malloc1.c
     15 * for example) and has to (at least) declare one function (the actual
     16 * benchmark) and fill-in the benchmark_t structure.
     17 *
     18 * Fill-in the name of the benchmark, its description and a reference to the
     19 * benchmark function to the benchmark_t.
     20 *
     21 * The benchmarking function has to accept for arguments:
     22 *  @li stopwatch_t: store the measured data there
     23 *  @li uint64_t: size of the workload - typically number of inner loops in
     24 *      your benchmark (used to self-calibrate benchmark size)
     25 *  @li char * and size_t giving you access to buffer for storing error message
     26 *  if the benchmark fails (return false from the function itself then)
     27 *
     28 * Typically, the structure of the function is following:
     29 * @code{c}
     30 * static bool runner(stopwatch_t *stopwatch, uint64_t size,
     31 *     char *error, size_t error_size)
     32 * {
     33 *      stopwatch_start(stopwatch);
     34 *      for (uint64_t i = 0; i < size; i++) {
     35 *              // measured action
     36 *      }
     37 *      stopwatch_stop(stopwatch);
     38 *
     39 *      return true;
     40 * }
     41 * @endcode
    442 */
Note: See TracChangeset for help on using the changeset viewer.