Skip to content
  • Fredrik K's avatar
    Use kwset in pickaxe · b95c5ada
    Fredrik K authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Benchmarks in the hot cache case:
    
    before:
    $ perf stat --repeat=5 git log -Sqwerty
    
    Performance counter stats for 'git log -Sqwerty' (5 runs):
    
           47,092,744 cache-misses             #      2.825 M/sec   ( +-   1.607% )
          123,368,389 cache-references         #      7.400 M/sec   ( +-   0.812% )
          330,040,998 branch-misses            #      3.134 %       ( +-   0.257% )
       10,530,896,750 branches                 #    631.663 M/sec   ( +-   0.121% )
       62,037,201,030 instructions             #      1.399 IPC     ( +-   0.142% )
       44,331,294,321 cycles                   #   2659.073 M/sec   ( +-   0.326% )
               96,794 page-faults              #      0.006 M/sec   ( +-  11.952% )
                   25 CPU-migrations           #      0.000 M/sec   ( +-  25.266% )
                1,424 context-switches         #      0.000 M/sec   ( +-   0.540% )
         16671.708650 task-clock-msecs         #      0.997 CPUs    ( +-   0.343% )
    
          16.728692052  seconds time elapsed   ( +-   0.344% )
    
    after:
    $ perf stat --repeat=5 git log -Sqwerty
    
    Performance counter stats for 'git log -Sqwerty' (5 runs):
    
           51,385,522 cache-misses             #      4.619 M/sec   ( +-   0.565% )
          129,177,880 cache-references         #     11.611 M/sec   ( +-   0.219% )
          319,222,775 branch-misses            #      6.946 %       ( +-   0.134% )
        4,595,913,233 branches                 #    413.086 M/sec   ( +-   0.112% )
       31,395,042,533 instructions             #      1.062 IPC     ( +-   0.129% )
       29,558,348,598 cycles                   #   2656.740 M/sec   ( +-   0.204% )
               93,224 page-faults              #      0.008 M/sec   ( +-   4.487% )
                   19 CPU-migrations           #      0.000 M/sec   ( +-  10.425% )
                  950 context-switches         #      0.000 M/sec   ( +-   0.360% )
         11125.796039 task-clock-msecs         #      0.997 CPUs    ( +-   0.239% )
    
          11.164216599  seconds time elapsed   ( +-   0.240% )
    
    So the kwset code is about 33% faster.
    
    Signed-off-by: default avatarFredrik Kuivinen <frekui@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    b95c5ada