On 10/2/2011 2:08 PM, Kyle Leber wrote:
> I was able to capture a profile from svn (after remembering I have to
> link statically). I compiled with "-pg -O0" Here is the top of the file:
>
> Each sample counts as 0.01 seconds.
> % cumulative self self total
> time seconds seconds calls s/call s/call name
> 88.88 133.49 133.49 2002891836 0.00 0.00 svn_diff__snake
> 5.97 142.45 8.96 56 0.16 2.54 svn_diff(long,
> char, short)
> 1.98 145.42 2.97 4163001 0.00 0.00 MD5Transform
> 0.41 146.04 0.62 4163001 0.00 0.00 Decode
>
> Is it OK to attach the full report to this user list? The resulting
> text file is 1.3MB and I wasn't sure if the list would tolerate an
> attachment of that size.
>
It's a weekend, so you might not get a lot of replies from people who
know SVN source code, but it's likely that the full report won't be
needed. There are two billion (!) calls to svn_diff__snake(), and the
question is why there are so many. It might help the devs if you pasted
in the entries for functions which directly called svn_diff__snake()
(quite possibly svn_diff() only) and perhaps the functions which
svn_diff__snake() called directly (none of any significance, if I read
the above report correctly). This should be only a few dozen lines of
the report. Note that you'll have to trace through the report (the
top-level function is listed first, followed by its children,
grandchildren, etc.) to find the entries for these functions.
I have a suspicion that one of the devs will be able to identify the
issue from just the above report, but a little more information might
turn out to be helpful. They certainly won't need to see information
for all of the zillion functions in SVN.
--
David Chapman dcchapman_at_acm.org
Chapman Consulting -- San Jose, CA
Received on 2011-10-02 23:32:29 CEST