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
This archive was generated by hypermail pre-2.1.9 : Sun Oct 01 2006 - 12:00:06 MDT