[or-cvs] [tor/master] Initial oprofile instructions based on original by weasel.

nickm at torproject.org nickm at torproject.org
Sun Sep 12 23:33:44 UTC 2010


Author: Nick Mathewson <nickm at torproject.org>
Date: Sun, 12 Sep 2010 19:36:57 -0400
Subject: Initial oprofile instructions based on original by weasel.
Commit: 2be5effe9a3b3832f92b52c21bfee6e491bc25fc

---
 doc/HACKING |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/doc/HACKING b/doc/HACKING
index d8538b1..486fe6d 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -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
 ------------------
 
-- 
1.7.1



More information about the tor-commits mailing list