• René Scharfe's avatar
    diffcore-pickaxe: use memmem() · ce163c79
    René Scharfe authored
    Use memmem() instead of open-coding it.  The system libraries usually have a
    much faster version than the memcmp()-loop here.  Even our own fall-back in
    compat/, which is used on Windows, is slightly faster.
    
    The following commands were run in a Linux kernel repository and timed, the
    best of five results is shown:
    
      $ STRING='Ensure that the real time constraints are schedulable.'
      $ git log -S"$STRING" HEAD -- kernel/sched.c >/dev/null
    
    On Ubuntu 8.10 x64, before (v1.6.2-rc2):
    
      8.09user 0.04system 0:08.14elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
      0inputs+0outputs (0major+30952minor)pagefaults 0swaps
    
    And with the patch:
    
      1.50user 0.04system 0:01.54elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
      0inputs+0outputs (0major+30645minor)pagefaults 0swaps
    
    On Fedora 10 x64, before:
    
      8.34user 0.05system 0:08.39elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
      0inputs+0outputs (0major+29268minor)pagefaults 0swaps
    
    And with the patch:
    
      1.15user 0.05system 0:01.20elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
      0inputs+0outputs (0major+32253minor)pagefaults 0swaps
    
    On Windows Vista x64, before:
    
      real    0m9.204s
      user    0m0.000s
      sys     0m0.000s
    
    And with the patch:
    
      real    0m8.470s
      user    0m0.000s
      sys     0m0.000s
    Signed-off-by: default avatarRene Scharfe <rene.scharfe@lsrfire.ath.cx>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    ce163c79
diffcore-pickaxe.c 3.13 KB