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