Shall we step back one step (was: Re: memory allocations / libxml)



There are really two issues here:

o Memory footprint
o performance

Usually the biggest killer on X application performance and startup time 
is not CPU time, directly, but indirectly caused by X roundtrips, which
can often be avoided.  Indirectly, such round trips also generate lots
of other unneeded activity....

And sometimes applications and toolkits ask the X server do amazingly
stupid things on their behalf (and since we don't have good system
wide profiling  tools, this usually goes unnoticed, hidden in X server
statistics, rather than application statistics.

Getting net memory footprint down is always a win.

For analysis of protocol traffic, I recommend xscope, which is unfortunately
hard to get your hands on, as we've never been able to track down
the copyright holder to deal with getting it freely distributable.
However, Keith Packard has a version I expect you can get your hands on,
which has been updated to have recent extensions (e.g. render) supported.

A second tool, also hard to get your hands on unfortunately, is DCPI, 
which does system wide profiling without requiring recompilation. You 
can tell it: "start profiling", and then "stop profiling", on any or all 
processes on the system. This runs on Tru64 UNIX and is available there, 
and while it has been ported to Alpha Linux, the code it needs to read 
elf symbol tables is GPL'ed, and we've not rewritten it to clear up the 
GPL problem, and cannot therefore redistribute DCPI currently on Linux.
I believe some people have been trying to reproduce this technology
open source, but I don't know how far they are.

This would allow simultaneous profiling of both clients and servers
and make it much clearer what is  going on and where the total time
gets spent.

If someone has time, it may be possible to make DCPI available on a
machine accessable at CRL to help track some of the performance
problems down, but we (Compaq) cannot currently distribute the
Linux DCPI version due to this GPL problem (why the elf libraries
are GPL rather than LGPLis beyond me, but they  are).

If someone has the time, particularly if you are in the Boston area, let 
me know and I'll investigate further and see if we can make this happen.  
I don't have time myself to start on a big Gnome performance project given 
my constraints, but can probably make it possible for someone to do the 
work on a machine here.

A "really neat" X server project would be to make an X extension that
was an NFS server, so you could browse a running X server and understand
what is allocated there easily.  This, I believe, has been done once
in the past, but I don't think the source was ever made available.
                   - Jim


--
Jim Gettys
Cambridge Research Laboratory
Compaq Computer Corporation
jg pa dec com




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]