|
From: Nicholas N. <nj...@cs...> - 2007-07-11 22:47:23
|
On Thu, 12 Jul 2007, Christoph Bartoschek wrote: > I've looked into the profile after the first fix, that I sent earlier this > day, and have seen that the method vgPlain_HT_remove took lots of runtime in > my testcase program. The cause is a too small hashtable and chains of up to > 99 elements. > > Therefore I have changed the m_hashtable.c implementation to automatically > expand itself if the density of the hash reaches 75% (or 60% in a test). > [...] > > Native: 25 s > Revision 6765 - tool=none: 59 s > Revision 6765 - tool=memcheck: 7711 s > Superblock fix - none 58 s > Superblock fix - memcheck: 903 s > Superblock + Hashtable 75% - none: 59 s > Superblock + Hashtable 75% - memcheck: 423 s > Superblock + Hashtable 60% - none: 59 s > Superblock + Hashtable 60% - memcheck: 392 s Christoph, this is very helpful stuff -- pathological cases like this are a real problem. Thanks for hunting it down. I'm sure it will make its way into future releases. If you're feeling motivated, you might like to try running your modified version(s) on a big program like OpenOffice or Firefox, and see if it speeds them up too. They both do a lot of allocations. Nick |