Am 13.01.2007 um 10:45 schrieb Gustaf Neumann:
correcting these configuration isses, the program works VERY well.... i tried on 32bit and 64bit machines (a minor complaint in the memtest program, casting 32bit int to ClientData and vice versa)
Where exactly so I can fix that?
-gustaf PS: i could get access to an 64-bit amd FreeBSD machine on monday, if there is still need...
Well, I could use some hands-on experience... Please send me some login data so I can check it out!
PPS: strangly, the only think making me supicious is the huge amount of improvement, especially on Mac OS X. I can't remember in my experience having seen such a drastical performance increase by a realitive litte code change, especially in an area, which is usually carefully fine-tuned, and where many CS grads from all over the world writing their thesis on....
This *is* the only fact that's *really* puzzling me so much. I cannot explain that at all. I was also stepping the whole thing with the debugger because I thought there must be some error somewhere, but I found none! Then I thought it is the test program that does something weird. But it's not! The test program just happily allocates random chunks between 16 and 16384 bytes and then releases them. No big magic. And certainly not something of a rocket science. So the mistery remains... Moreover, the Tcl allocator seems to suck greatly when exposed to such test on Mac OSX. Also not very explainable. The only thing I noticed is: Tcl allocator uses MUCH system time, whereas our alloc uses close-to-none. That would point that it does lots of locking (I cannot imagine it would do anything else system-related) whereas our alloc uses close to none locking (that is, when the memory is allocated and freed in the same thread, which is what happens 99% of the time).
I would recommend that Vlad and Zoran should write a technical paper about the new allocator and analyze the properties and differences....
If I could ever get time for that! What we could write is a more in-depth explanation how it works (it is actually very simple). Cheers Zoran