Re: [PATCH] xdiff: optimise for no whitespace difference when ignoring whitespace.

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

 



On Mon, Jul 5, 2010 at 10:36 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Dylan Reid <dgreid@xxxxxxxxx> writes:
>
>> In xdl_recmatch, do the memcmp to check if the two lines are equal before
>> checking if whitespace flags are set.  If the lines are identicle, then
>
> "identical"?

That's exaclty what I meant.  Correct patch sent.

>
>> there is no need to check if they differ only in whitespace.
>> This makes the common case (there is no whitespace difference) faster.
>> It costs the case where lines are the same length and contain
>> whitespace differences, but the common case is more than 20% faster.
>
> "more than 20% faster" based on what dataset and benchmark?
>

I benchmarked it with some of the bigger files from Linux.  The
results were consistenly > 20% faster
across different file sizes.  I tested it by simply running the
command a few times then running it with
my local build a few times to see if I had achieved any speedup.

~/linux-2.6(119)$ time git blame --incremental -w
./sound/pci/hda/patch_realtek.c > /dev/null

real    0m8.166s
user    0m8.063s
sys     0m0.090s
~/linux-2.6(120)$ time git blame --incremental -w
./sound/pci/hda/patch_realtek.c > /dev/null

real    0m8.010s
user    0m7.866s
sys     0m0.137s
~/linux-2.6(121)$ time ~/work/git/git blame --incremental -w
./sound/pci/hda/patch_realtek.c > /dev/null

real    0m6.115s
user    0m5.986s
sys     0m0.123s
~/linux-2.6(122)$ time ~/work/git/git blame --incremental -w
./sound/pci/hda/patch_realtek.c > /dev/null

real    0m6.119s
user    0m5.986s
sys     0m0.127s


Thanks for taking the time to read the patch.

Dylan
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]