You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Alan Conway <ac...@redhat.com> on 2007/08/02 17:07:49 UTC

Summary of memory profile work:

I ran the google heap profilef on qpidd compiled with with -O3 --ggdb
and ran src/tests/topictest with its default parameters: 
SUBSCRIBERS=10
MESSAGES=2000
BATCHES=10

qpidd makes a staggering 1.2 *million* heap allocations. Here are the
top offenders. The columns are: direct allocs, direct%,  running total
of direct%, cumulative calls (self and all all children), cumulative%


  205090  17.1%  17.1%   205090  17.1%
boost::detail::function::functor_manager::manage
  200362  16.7%  33.7%   200362  16.7% qpid::make_shared_ptr
  200210  16.7%  50.4%   424477  35.3%
qpid::broker::BasicMessage::deliver
  200210  16.7%  67.0%   413090  34.4% qpid::broker::Queue::process
   81041   6.7%  73.8%    81041   6.7%
std::basic_string::_Rep::_S_create


The google tool also generates a call graph (attached)

I'm going to takle the heap allocation of frame bodies (which show up as
BasicMessage::deliver and make_shared_ptr above) Big commit coming soon,
I'll give fair warning.

Cheers,
Alan.