|
From: Julian S. <js...@ac...> - 2013-01-07 09:00:45
|
> This is roughly a 50x slowdown, I'd expect it to be much smaller when > doing little to no additional instrumentation. For no-instrumentation (--tool=none) I'd expect a slowdown in the range 3-4. But that's only in the steady state, when the cost of doing the JITting is small compared to the cost of running the generated code. It maybe that the case you mentioned is the worst case -- JITting a huge amount of code (half of Chromium) and then do very little work before exiting. You can assess that by looking at these lines in the --stats=yes output: transtab: new 3,171 (69,078 -> 1,143,658; ratio 165:10) [0 scs] which shows how much code is translated (== some measure of the JIT cost), and scheduler: 82,744 event checks. which shows how many backwards branches are counted by the simulator (== some measure of the cost of running the code). What numbers to you see? > Is there any way to optimize Valgrind for such usage? Do more useful work per program-start. > What I want is basically to instrument only a couple of .so modules, > leaving anything else unchanged. Not doable for Memcheck/Helgrind -- they need to track the complete memory state from startup. J |