Hi Matus,
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
say) :-)
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).
http://valgrind.org/downloads/repository.html
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
experience ;-].
Thanks !
Michael.
--
michael .meeks@novell.com <><, Pseudo Engineer, itinerant idiot
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.