perf-bench(1) - Linux man page
Name
perf-bench - General framework for benchmark suites
Synopsis
perf bench [<common options>] <subsystem> <suite> [<options>]
Description
This perf bench command is a general framework for benchmark suites.
Common Options
-f, --format=
- Specify format style. Current available format styles are:
- default
- Default style. This is mainly for human reading.
.ft C % perf bench sched pipe # with no style specified (executing 1000000 pipe operations between two tasks) Total time:5.855 sec 5.855061 usecs/op 170792 ops/sec .ft - simple
- This simple style is friendly for automated processing by scripts.
.ft C % perf bench --format=simple sched pipe # specified simple 5.988 .ft
Subsystem
sched
- Scheduler and IPC mechanisms.
- mem
- Memory access performance.
- all
- All benchmark subsystems.
SUITES FOR sched
- messaging
- Suite for evaluating performance of scheduler and IPC mechanisms. Based on hackbench by Rusty Russell.
- Options of messaging
- -p, --pipe
- Use pipe() instead of socketpair()
- -t, --thread
- Be multi thread instead of multi process
- -g, --group=
- Specify number of groups
- -l, --loop=
- Specify number of loops
- Use pipe() instead of socketpair()
- Example of messaging
-
.ft C % perf bench sched messaging # run with default options (20 sender and receiver processes per group) (10 groups == 400 processes run) Total time:0.308 sec % perf bench sched messaging -t -g 20 # be multi-thread, with 20 groups (20 sender and receiver threads per group) (20 groups == 800 threads run) Total time:0.582 sec .ft- pipe
- Suite for pipe() system call. Based on pipe-test-1m.c by Ingo Molnar.
- pipe
- Options of pipe
- -l, --loop=
- Specify number of loops.
- Example of pipe
-
.ft C % perf bench sched pipe (executing 1000000 pipe operations between two tasks) Total time:8.091 sec 8.091833 usecs/op 123581 ops/sec % perf bench sched pipe -l 1000 # loop 1000 (executing 1000 pipe operations between two tasks) Total time:0.016 sec 16.948000 usecs/op 59004 ops/sec .ft
SUITES FOR mem
- memcpy
- Suite for evaluating performance of simple memory copy in various ways.
- Options of memcpy
- -l, --length
- Specify length of memory to copy (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive).
- -r, --routine
- Specify routine to copy (default: default). Available routines are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-movsq and x86-64-movsb are supported.
- -i, --iterations
- Repeat memcpy invocation this number of times.
- -c, --clock
- Use perf's cpu-cycles event instead of gettimeofday syscall.
- -o, --only-prefault
- Show only the result with page faults before memcpy.
- -n, --no-prefault
- Show only the result without page faults before memcpy.
- memset
- Suite for evaluating performance of simple memory set in various ways.
- Specify length of memory to copy (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive).
- Options of memset
- -l, --length
- Specify length of memory to set (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive).
- -r, --routine
- Specify routine to set (default: default). Available routines are depend on the architecture. On x86-64, x86-64-unrolled, x86-64-stosq and x86-64-stosb are supported.
- -i, --iterations
- Repeat memset invocation this number of times.
- -c, --clock
- Use perf's cpu-cycles event instead of gettimeofday syscall.
- -o, --only-prefault
- Show only the result with page faults before memset.
- -n, --no-prefault
- Show only the result without page faults before memset.
- Specify length of memory to set (default: 1MB). Available units are B, KB, MB, GB and TB (case insensitive).
See Also
perf(1)