Helping with KDE4 (valgrind)
Josef Weidendorfer
Josef.Weidendorfer at gmx.de
Wed May 10 08:52:40 BST 2006
On Monday 08 May 2006 23:45, Julian Seward wrote:
> valgrind --tool=callgrind --simulate-cache=yes \
> --trace-children=yes -v ksysguard
>
> After a couple of minutes the app appeared. I let it run for about
> 20 minutes (you don't need to wait that long, but I did). There were
> 2 running processes taking up 100% CPU between them (remember, programs
> run much slower under V). Then I quit the app.
>
> The result is these 3 log files
>
> -rw------- 1 sewardj users 387788 2006-05-08 19:51 callgrind.out.21650
> -rw------- 1 sewardj users 0 2006-05-08 19:51 callgrind.out.21652
> -rw------- 1 sewardj users 4459626 2006-05-08 20:11 callgrind.out.21651
>
> I don't know what's with the .21652 one.
OK, I too, did a quick run (without the cache simulator).
The empty one seems to come from the daemon (I can do a dump with callgrind_control).
No idea why it does not dump at termination :-(
In ksysguardd, 55% of instructions are executed in _IO_vfscanf, which is called
both from fscanf and sscanf. Despite running only a few seconds, both of these
functions where called >100000 times. I suspect this is parsing the /proc files?
Probably a specially written parser would be good here...
However, ksysguardd takes perhaps 1/6 of ksysguard, so it is not that important.
Regarding ksysguard: KSGRD::SensorShellAgent::msgRcvd is taking 60% inclusive
of all executed instructions.
A fast check gives that a lot of time is spent in updating and sorting QListItems.
Thats strange, as I had the process list in the background and the system load
worksheet with the 4 diagrams at top (with no list widgets).
It seems you are updating hidden widgets, which is a waste of time.
This is for KDE 3.5.2, but I suspect that could be the case with KDE 4, too?
Or was this changed with the model-viewer lists in Qt4?
> - I was surprised that the two active processes (the viewer and the
> daemon?) consumed 100% CPU on my desktop 1.7GHz P4. If we say that
> callgrind runs programs 50x slower than native (not sure of the exact
> numbers, but it's in that ballpark) then roughly we can say the two
> processes natively would take up >= 2% CPU,
Yes. Top shows ksysguard with around 2% - 3% for me, which is really high.
Josef
> which seems like a lot
> (that's >= 34MHz worth of machine cycles). So perhaps there's
> something expensive in there.
>
> Does that help?
>
> J
>
>
More information about the kde-core-devel
mailing list