[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] oprofile data for mtn 0.37.

From: Zack Weinberg
Subject: Re: [Monotone-devel] oprofile data for mtn 0.37.
Date: Wed, 12 Mar 2008 17:19:50 -0400

On Wed, Mar 12, 2008 at 3:13 PM, Jack Lloyd <address@hidden> wrote:
> On Wed, Mar 12, 2008 at 02:27:58PM -0400, Zack Weinberg wrote:
>  > Top of profile is
>  >
>  > 9678874  11.1247  std::_Rb_tree<std::string, std::pair<std::string
>  > const, Botan::Mutex*> ...>

Just to clarify, that leading number is absolute samples in function,
not a call count.

>  I'm pretty surprised it is that high though (both in call counts, and
>  b/c generally where it is called something else that is expensive is
>  going on). But clearly no matter what the circumstances this is not
>  ideal!

It occurs to me that we (monotone) create and destroy one Botan::Pipe
and at least one subclass of Botan::Filter for every call to most of
the functions in transform.hh.  If there's a global lock around
allocating the memory for that, that could explain it.  [Is it
practical to bypass the Pipe interface and manipulate e.g. Hex_Encoder

>  3) Drop global shared state wholesale, and require applications to
>  maintain any per-thread or per-process state (the RNG, allocators,
>  etc). [I've been leaning towards this of late for various other
>  reasons anyway]

This would be my choice, being the most efficient option for a
single-threaded program like Monotone.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]