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 dcchap...@acm.org
Chapman Consulting -- San Jose, CA