From: Mike B. <mbr...@vi...> - 2003-06-05 23:00:30
|
Perhaps I misunderstand how valgrind works. I have the understanding that, using the synthetic CPU, valgrind instruments the application on the fly and stores the instrumented code blocks in a cache. The author describes this process here http://developer.kde.org/~sewardj/docs-1.9.5/mc_techdocs.html. Do I misunderstand? Note that Quanitfy for Windows does not require a relink. You just point it at an executable and off it goes. First it instruments the executable and dependent DLLs and then it executes it. The UNIX version requires a relink - or at least it did when I last used it in the mid-1990's on HPUX. Mike Bresnahan ----- Original Message ----- From: "Alex Ivershen" <ale...@in...> To: "Mike Bresnahan" <mbr...@vi...> Cc: <Val...@li...> Sent: Thursday, June 05, 2003 5:41 PM Subject: Re: [Valgrind-users] Pre-instrumented vs JIT instrumentation > Valgrind, unlike Rational suite tools, does not "instrument" anything. That's the beauty of it - you don't need to recompile (or in case ot Quantify re-link) the application. The difference is that Rational tools embed extra code inside your object files and libraries - for memory or performance profiling. As a result, executable size, shared libraries sizes are huge and executiion suffers greatly (esp. with purify). Valgrind, on the other hand, runs your application on a synthetic CPU, all the machine instructions of your app are executed by Valgrind on this CPU and memory/performance profiling is done there, not in your app code. As far as Quantify comparison, cachegrind sking gives you much more information - e.g. Quantify does not report cache usage profile. > Last but not least - Valgrind is free, has MUCH better developer support, and is updated more frequently. > Downside - only runs on x86 Linux, exactly because of synthetic CPU - porting it to other platforms is too much work, so developers chose the most popular platform. > > Regards, > Alex |