Commit 2be5effe authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Initial oprofile instructions based on original by weasel.

parent b4942e34
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -130,6 +130,33 @@ compiler generated no code for that line. '######' means that the
line was never reached.  Lines with numbers were called that number
of times.

Profiling Tor with oprofile
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The oprofile tool runs (on Linux only!) to tell you what functions Tor is
spending its CPU time in, so we can identify berformance pottlenecks.

Here are some basic instructions

 - Build tor with debugging symbols (you probably already have, unless
   you messed with CFLAGS during the build process).
 - Build all the libraries you care about with debugging symbols
   (probably you only care about libssl, maybe zlib and Libevent).
 - Copy this tor to a new directory
 - Copy all the libraries it uses to that dir too (ldd ./tor will
   tell you)
 - Set LD_LIBRARY_PATH to include that dir.  ldd ./tor should now
   show you it's using the libs in that dir
 - Run that tor
 - Reset oprofiles counters/start it
   * "opcontrol --reset; opcontrol --start", if Nick remembers right.
 - After a while, have it dump the stats on tor and all the libs
   in that dir you created.
   * "opcontrol --dump;"
   * "opreport -l that_dir/*"
 - Profit


Coding conventions
------------------