Am 15.01.2007 um 20:15 schrieb Stephen Deasey:
Nobody yet gave any reasonable explanation why we are
that fast on Mac OSX compared to any other allocator.
Recall, that was 870.573/70.713.324 ops/sec Zippy/VT
so about 81 times faster, for 16 threads.
Although it really seems like a bug either in the testcode
or in the allocator, I have not been able to verify any.
All is working as it should. So, the mistery remains...
Because Mac OSX SucksMonkeyBawlz() in a tight inner loop?
Actually, Mike was right. The test pattern maxed the size
to slightly above 16000 which turned Zippy back to system
allocator and that alone screwed everything. When I limit
the test program to allocate up to 16000 bytes but not more
the performance of Zippy and VT are almost equal.
So, the only thing that remains is the memory handling.
But, as I stressed many times, our goal was to be +/- 25%
to zippy performance with better memory handling (releasing
memory to OS when possible). I still believe that we achieved
our goal very well.
But it is good to know why the difference on the Mac was so
much higher then elsewhere. I guess if I repeat the Zippy/VT
speed comparison on other platform, with 16000 bytes upper limit
that performance difference will be little or none.
Many thanks to Mike for good observation!
Cheers
Zoran