perf-bench(1) ============= NAME ---- perf-bench - General framework for benchmark suites SYNOPSIS -------- [verse] '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. --------------------- % 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 --------------------- 'simple':: This simple style is friendly for automated processing by scripts. --------------------- % perf bench --format=simple sched pipe # specified simple 5.988 --------------------- 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 Example of *messaging* ^^^^^^^^^^^^^^^^^^^^^^ --------------------- % 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 --------------------- *pipe*:: Suite for pipe() system call. Based on pipe-test-1m.c by Ingo Molnar. Options of *pipe* ^^^^^^^^^^^^^^^^^ -l:: --loop=:: Specify number of loops. Example of *pipe* ^^^^^^^^^^^^^^^^^ --------------------- % 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 --------------------- 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:: --cycle:: 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. 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:: --cycle:: 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. SEE ALSO -------- linkperf:perf[1]