fre 2006-09-15 klockan 16:25 +0800 skrev Adrian Chadd: > I've done some more profiling. Same test setup, current squid3 source. > > perfmon output: > > -------------------------------------------------------------------------------- > Samples Self % Total % Function > > 18915 26.09% 26.09% MemPool::clean(long) > 9266 12.78% 38.86% MemPool::getStats(MemPoolStats*)
Thats scary indeed.. My guess is that it would be worth the effort adding a little header to each object indicating their home chunk, avoiding the need for this rather heavy garbage collect. Why getStats is as heavy is a little mystery, but I suppose the clean call got inlined or something.. or maybe the chunk size is simply poorly selected which bites both. I also wonder a bit why it got called as often. Do you have any very large pools in this workload? Would also be interesting to compare to a benchmark with the non-pooled allocator. Simply start Squid with MEMPOOLS=0 in the environment. Regards Henrik
signature.asc
Description: Detta är en digitalt signerad meddelandedel
