[Libreoffice] [GSoC] Re: KCachegrind
michael.meeks at novell.com
Tue Jun 7 13:57:58 PDT 2011
On Tue, 2011-06-07 at 20:52 +0200, Matúš Kukan wrote:
> Unfortunately not. When we call func1 from main, we don't know how
> much of the inclusive cost is from func1 and how much from other lower
> functions func1 is calling (in this case func2) so we don't know how
> much to add to main. We can just add all the inclusive cost to main.
Ah ! ok :-) so - fair cop, perhaps this is a wild-goose-chase (as they
> The main problem is when hidden function calls visible one.
Okay... I guess if KCachegrind is not doing any real post-processing,
but only visualisation then adding that would be hard.
> > Not sure :-) I guess we prolly want to build (or re-use) some simple
> > test code - does kcachegrind have a couple of test libraries that it can
> > be used to profile ?
> I'm afraid there aren't any. I tried to find something but unsuccessfully.
Ok - that is lame too.
> I think I know what you want to do but I just can't see any option
> how to do it. In theory it could be possible but I think it's not
> because of the profile data format.
So - then I wonder if we can catch the problem lower down - inside the
valgrind 'cachegrind' skin. Now - I know what you're thinking: 'valgrind
is a complicated nightmare' :-) but you're wrong. Valgrind skins are
single-threaded, and amazingly simple (in my experience of skin hacking
- mainly for iogrind admittedly).
Now there are some quirks - you can't use 'printf()' for debugging, you
have to use _VG(printf("")) or somesuch ;-) but beyond that it should be
reasonably simple (I hope).
I -hope- that (since all the information is in-core at once in the
valgrind process), that we can get the account right there - last I
looked ~all of cachegrind was only ~1500 lines of code - hopefully an
easy read. Presumably adding some --hide-object='libc.so.6,libuno.so'
etc. is quite do-able there too ?
What do you think ? [ and sorry this is such a stretching
michael .meeks at novell.com <><, Pseudo Engineer, itinerant idiot
More information about the LibreOffice