Changeset a362c16 in mainline
- Timestamp:
- 2019-01-03T10:24:23Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f85546d
- Parents:
- 60029df
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/perf/doc/doxygroups.h
r60029df ra362c16 2 2 * @brief User space performance measuring tool 3 3 * @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 4 42 */
Note:
See TracChangeset
for help on using the changeset viewer.