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