• Dmitry Vyukov's avatar
    perf bench: Add breakpoint benchmarks · 68a6772f
    Dmitry Vyukov authored
    Add 2 benchmarks:
    
    1. Performance of thread creation/exiting in presence of breakpoints.
    2. Performance of breakpoint modification in presence of threads.
    
    The benchmarks capture use cases that we are interested in:
    using inheritable breakpoints in large highly-threaded applications.
    
    The benchmarks show significant slowdown imposed by breakpoints
    (even when they don't fire).
    
    Testing on Intel 8173M with 112 HW threads show:
    
      perf bench --repeat=56 breakpoint thread --breakpoints=0 --parallelism=56 --threads=20
            78.675000 usecs/op
      perf bench --repeat=56 breakpoint thread --breakpoints=4 --parallelism=56 --threads=20
         12967.135714 usecs/op
    
    That's 165x slowdown due to presence of the breakpoints.
    
      perf bench --repeat=20000 breakpoint enable --passive=0 --active=0
             1.433250 usecs/op
      perf bench --repeat=20000 breakpoint enable --passive=224 --active=0
           585.318400 usecs/op
      perf bench --repeat=20000 breakpoint enable --passive=0 --active=...
    68a6772f
builtin-bench.c 8.59 KB