Skip to content

Performance

Tested with MacBook Pro (14-inch, M2 Pro, 2023). Refer to our benchmark code.

 ✓ index.bench.ts > open 1210ms
     name            hz     min      max    mean     p75     p99    p995    p999     rme  samples
   · es-git   11,536.94  0.0673  14.4495  0.0867  0.0848  0.1633  0.2256  0.3882  ±5.69%     5769
   · nodegit  12,511.07  0.0691   7.7552  0.0799  0.0801  0.1040  0.1179  0.1825  ±4.18%     6256   fastest

 ✓ index.bench.ts > rev-parse 1817ms
     name                 hz      min      max     mean      p75      p99     p995     p999     rme  samples
   · es-git         6,530.94   0.1336  14.7510   0.1531   0.1514   0.1848   0.1974   0.2353  ±5.73%     3266   fastest
   · nodegit        5,916.49   0.1488   5.6818   0.1690   0.1695   0.2487   0.2610   0.3844  ±2.89%     2959
   · child_process   91.4863  10.1801  12.3195  10.9306  11.1550  12.3195  12.3195  12.3195  ±1.32%       46   slowest

 ✓ index.bench.ts > revwalk 1817ms
     name                hz      min      max     mean      p75      p99     p995     p999     rme  samples
   · es-git          838.67   1.1241   5.0922   1.1924   1.1908   1.3663   1.4037   5.0922  ±1.58%      420   fastest
   · nodegit         792.75   1.2143   1.6610   1.2614   1.2679   1.4472   1.5426   1.6610  ±0.35%      397
   · child_process  73.8698  12.3492  26.3306  13.5373  13.7976  26.3306  26.3306  26.3306  ±5.76%       37   slowest

 ✓ index.bench.ts > get commit 1812ms
     name                 hz      min      max     mean      p75      p99     p995     p999      rme  samples
   · es-git         7,411.15   0.1176   0.5647   0.1349   0.1375   0.1862   0.2058   0.2557   ±0.36%     3706   fastest
   · nodegit        5,922.63   0.1333  29.4811   0.1688   0.1620   0.2758   0.3105   0.3711  ±11.51%     2962
   · child_process   71.8030  12.6222  17.5353  13.9270  14.2632  17.5353  17.5353  17.5353   ±2.86%       36   slowest

Summary:

  nodegit - index.bench.ts > open
    1.08x faster than es-git

  es-git - index.bench.ts > rev-parse
    1.10x faster than nodegit
    71.39x faster than child_process

  es-git - index.bench.ts > revwalk
    1.06x faster than nodegit
    11.35x faster than child_process

  es-git - index.bench.ts > get commit
    1.25x faster than nodegit
    103.22x faster than child_process

Released under the MIT License.