Stefan Fuhrmann writes:
> Under Linux, I'm using Valgrind / Callgrind and visualize in KCachegrind.
> That gives me a good idea of what code gets executed too often, how
> often a jump (loop or condition) has been taken etc. It will not show the
> non-user and non-CPU runtime, e.g. wait for disk I/O. And it will slow the
> execution be a factor of 100 (YMMV).
Ah, they're brilliant! Just what I was looking for :D I'm yet to
interpret the output and interpret it to opimize svnrdump though-
might need some more help there; are you available on #svn-dev or
something sometime? Will keep you updated on this either way.
> Under Windows, I'm using the VisualStudio sampling profiler. The
> are pretty accurate and the overhead is low. It does not tell me, how often
> a certain code path has been executed. Due to the low overhead, it is
> well-suited for long running (>1 min) operations.
Interesting. I didn't know Visual Studio had a profiler. Then again,
I've not used Windows for several years now.
> Also, I find a simple "time <command>" very useful to get a first impression
> whether my code is bound by user-runtime, I/O wait or system runtime.
Ah, I want to know how to interpret this correctly. For equivalent
svnrdump says: 7.49s user 1.34s system 91% cpu 9.682 total
svnadmin says: 4.84s user 0.44s system 97% cpu 5.417 total
> To collect data on I/O activity, compression rates and other not readily
> available information, I use simple static counters and printf()
> their values
> at the end of each client call, for instance.
> Hope that helps.
A ton! Thanks a lot :)
Received on 2010-09-28 17:55:08 CEST