User Tools

Site Tools


perf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
perf [2014/03/29 19:09] – [Perf] mikael.ohmanperf [2014/08/22 00:11] (current) – [Perf] mikael.ohman
Line 1: Line 1:
 ====== Measuring performance ====== ====== Measuring performance ======
 In general, to obtain useful information from binaries, certain compile flags should be used. In general, to obtain useful information from binaries, certain compile flags should be used.
- 
  
 ===== Perf ===== ===== Perf =====
Line 11: Line 10:
 which will generate a perf.data file. which will generate a perf.data file.
  
-Then you can visualize the results in several ways. A good, simple to understand method is to use gprof2dot to generate a complete callgraph:+Then you can visualize the results in several ways. A good, simple to understand method is to use [[http://code.google.com/p/jrfonseca/wiki/Gprof2Dot|Gprof2Dot]] to generate a complete callgraph:
  
-''perf script | ./gprof2dof.py -f perf | dot -Tsvg  -o output.svg''+''perf script | ./gprof2dot.py -f perf | dot -Tsvg  -o output.svg''
  
 +Or use the ncurses program
 +
 +''perf report -G %%--%%sort comm,dso''
 +
 +Perf has very small overhead, but only does statistical sampling.
 +
 +
 +//Users of perf will likely first need to turn off the restrictions before they are able to run ''perf record'' as normal users://
 +
 +''sudo sh -c %%"%%echo 0 > /proc/sys/kernel/kptr_restrict%%"%%''
 ===== Callgrind ===== ===== Callgrind =====
 Callgrind is a tool in valgrind, and should only be used on medium. This has a huge overhead, so expect OOFEM to run over a hundred times slower through valgrind. Callgrind is a tool in valgrind, and should only be used on medium. This has a huge overhead, so expect OOFEM to run over a hundred times slower through valgrind.
 Simply run Simply run
 +
 ''valgrind --tool=callgrind ./oofem -f myinputfile.in'' ''valgrind --tool=callgrind ./oofem -f myinputfile.in''
 +
 and you will produce a new file named ''callgrind.out.123456'' where the numbers at the end are randomized. and you will produce a new file named ''callgrind.out.123456'' where the numbers at the end are randomized.
 Open this file in Kcachegrind to visualize the results. Open this file in Kcachegrind to visualize the results.
  
  
perf.1396116544.txt.gz · Last modified: 2014/03/29 19:09 by mikael.ohman