summaryrefslogtreecommitdiffstats
path: root/app/perfunwind.h
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2017-11-08 11:28:54 +0200
committerUlf Hermann <ulf.hermann@qt.io>2019-05-02 14:42:33 +0000
commit2f6fa8a5ed177b5b342c5c2ad6abd517e1d6495a (patch)
tree1c9778594f0c82f6668a0e7b8cec25ab54a2b877 /app/perfunwind.h
parent9f2dd7f252d29de549fa1b6236a04312286adfc8 (diff)
Prevent useless cache invalidation
Sometimes we encounter mmap events from perf that span a larger region than dwfl will parse. In these situations, we would invalidate the cache and then rebuild it exactly as before - i.e. we would just waste time for no gain. This patch checks whether this is happening and prevents the cache invalidation to speed up the parse process. In one of my cases this helps significantly: Before: Performance counter stats for './perfparser --input perf.data --output /dev/null': 19553.281950 task-clock:u (msec) # 0.998 CPUs utilized 0 context-switches:u # 0.000 K/sec 0 cpu-migrations:u # 0.000 K/sec 59,997 page-faults:u # 0.003 M/sec 58,567,488,383 cycles:u # 2.995 GHz 158,503,674,356 instructions:u # 2.71 insn per cycle 38,712,268,219 branches:u # 1979.835 M/sec 193,851,125 branch-misses:u # 0.50% of all branches 19.593726259 seconds time elapsed After: Performance counter stats for './perfparser --input perf.data --output /dev/null': 11775.076614 task-clock:u (msec) # 0.997 CPUs utilized 0 context-switches:u # 0.000 K/sec 0 cpu-migrations:u # 0.000 K/sec 22,747 page-faults:u # 0.002 M/sec 35,463,053,591 cycles:u # 3.012 GHz 94,541,494,541 instructions:u # 2.67 insn per cycle 23,038,811,370 branches:u # 1956.574 M/sec 120,291,747 branch-misses:u # 0.52% of all branches 11.807795955 seconds time elapsed Change-Id: I3efdf5941c5f66cb2d38fecc8ef824c6aef245da Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Diffstat (limited to 'app/perfunwind.h')
0 files changed, 0 insertions, 0 deletions