On 18.08.2010 00:59, Johan Corveleyn wrote:
> Hi devs,
>
> While "Looking to improve performance of svn annotate" [1], I found
> that the current blame algorithm is mainly client-side bound, and that
> most of its time is spent on "svn diff" (calls to svn_diff_file_diff_2
> from add_file_blame in blame.c). Apart from avoiding to build
> full-texts and diffing them altogether (which is subject of further
> discussion in [1]), I'm wondering if optimization of "svn diff"
> wouldn't also be an interesting way to improve the speed of blame.
>
> So the main question is: is it worth it to spend time to analyze this
> further and try to improve performance? Or has this already been
> optimized in the past, or is it simply already as optimal as it can
> get? I have no idea really, so if anyone can shed some light ...
>
> Gut feeling tells me that there must be room for optimization, since
> GNU diff seems a lot faster than svn diff for the same large file
> (with one line changed) on my machine [1]. But maybe svn's diff
> algorithm is purposefully different (better? more accurate? ...) than
> GNU's, or there are specific things in the svn context so svn diff has
> to do more work.
>
> Any thoughts?
>
svn_diff uses basically the same algorithm as GNU diff but implemented
slightly differently and IIRC it doesn't have some of GNU diff's
optimizations. I'm sure it can be speeded up, but haven't a clue about
how much.
-- Brane
Received on 2010-08-22 16:03:49 CEST