Memory GN-Optimization tools, (libumem vs nautilus)
Tuesday May 31, 2005
In Robert Love's GNOME optimization talk at GUADEC, I thought I heard him say that Nautilus RSS grows by (10-12Mb?) on every folder open but that Valgrind hasn't found any leaks. Well, since libumem doesn't grind nautilus performance to a halt, there's no harm in me giving it a try. I didn't do anything fancy, I just followed followed Adam Leventhal's example replaced 'my_leaky_program' with Nautilus1, set a breakpoint at nautilus_window_close::bp, opened and closed a nautilus folder. Most of the stuff I get is pretty generic strdup leaks, but here are a couple of the interesting bits:
::findleaks
CACHE LEAKED BUFCTL CALLER
{stuff deleted...}
080eb790 26 089f0c88 libc.so.1`strdup+0x25
080eba10 32 08979de8 libc.so.1`strdup+0x25
080eb510 25 089e6908 libc.so.1`strdup+0x25
...
The reason I pulled these three entries out of the findleaks output is that they all have an audit which looks something like this:
089790c8::bufctl_audit
ADDR BUFADDR TIMESTAMP THREAD
CACHE LASTLOG CONTENTS
8979de8 8978348 e6fb39f5108 6
80eba10 0 0
libumem.so.1`umem_cache_alloc_debug+0x16c
libumem.so.1`umem_cache_alloc+0xe1
libumem.so.1`umem_alloc+0x3f
libumem.so.1`malloc+0x23
libc.so.1`strdup+0x25
libgnomevfs-2.so.0.600.0`_gnome_vfs_xdg_hash_append_glob+0xbe
Maybe a nautilus or gnome-vfs expert could tell me if these apparent leaks in _gnome_vfs_xdg_hash_append_glob represent a real problem.
I also wonder if nautilus-throbber has any leaks. Dtrace shows that it certainly does a lot of I/O considering it's only there to tell us that nautilus is busy.
Hmm, I'm missing Glynn's talk because my laptop sound is hosed. Oh cool, the Fluendo java plugin works fine on Sun Ray under Solaris, even with hotdesking. It honors AUDIODEV! Well, that's all I have for now. I'd appreciate hearing whether this or other similar information might help the GNOME optimization project.
Update:
Thanks Yusuf for suggesting that I add a link to the libumem tutorial.1 There isn't room in this blog for the number of leaks you'd find in certain other applications (you know who you are, don't you ;-)










