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*)
3809 5.25% 44.12% MemPool::push(void*)
1407 1.94% 46.06% MemPool::get()
1295 1.79% 47.84% mem_hdr::copyAvailable(mem_node*, unsigned int, unsigned int, char*) const
956 1.32% 49.16% headersEnd
884 1.22% 50.38% String::limitInit(char const*, int)
836 1.15% 51.53% mem_hdr::writeAvailable(mem_node*, unsigned int, unsigned int, char const*)
652 0.90% 52.43% MemBuf::append(char const*, int)
625 0.86% 53.29% httpHeaderIdByName
gprof output:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls Ks/call Ks/call name
41.72 520.92 520.92 96886 0.00 0.00 MemPool::clean(long)
18.68 754.16 233.24 95668 0.00 0.00 MemPool::getStats(MemPoolStats*)
3.78 801.41 47.25 80591325 0.00 0.00 MemPool::push(void*)
1.77 823.52 22.11 80591448 0.00 0.00 MemPool::get()
1.36 840.45 16.93 1869713 0.00 0.00 mem_hdr::copyAvailable(mem_node*, unsigned int, unsigned int, char*) const
1.00 852.93 12.48 1945388 0.00 0.00 headersEnd
0.91 864.32 11.38 9211732 0.00 0.00 mem_hdr::writeAvailable(mem_node*, unsigned int, unsigned int, char const*)
0.85 874.90 10.59 46796172 0.00 0.00 String::limitInit(char const*, int)
0.65 883.03 8.12 27262950 0.00 0.00 MemBuf::append(char const*, int)
0.61 890.64 7.62 8808921 0.00 0.00 httpHeaderIdByName
I wonder why the chunked allocator is doing -that-..
Adrian
Received on Fri Sep 15 2006 - 02:23:57 MDT
This archive was generated by hypermail pre-2.1.9 : Sun Oct 01 2006 - 12:00:06 MDT