Skip to content

Latest commit

 

History

History
18 lines (16 loc) · 1.63 KB

BENCHMARKS.md

File metadata and controls

18 lines (16 loc) · 1.63 KB

I use https://github.com/sharkdp/hyperfine to benchmark, which makes it easy to get consistent benchmarks. Note that benchmarks are done with cache only. While it's interesting to see the performance improvement on a cold cache, it's not representative of the performance of the tool in a real-world scenario, since most of the time the cache will be warm. To run these benchmarks on your application, you can place this repo next to your rails application and run bash ../pks/dev/run_benchmarks.sh from the root of your application

Hot Cache, with and without spring, entire codebase

Command Mean [s] Min [s] Max [s] Relative
../pks/target/release/pks update 2.219 ± 0.221 2.049 2.469 1.00
../pks/target/release/pks --experimental-parser update 2.506 ± 0.260 2.316 2.803 1.13 ± 0.16
DISABLE_SPRING=1 bin/packwerk update 29.653 ± 2.329 27.122 31.706 13.37 ± 1.70
bin/packwerk update 21.439 ± 2.535 19.080 24.120 9.66 ± 1.49

Hot Cache, with and without spring, single file

Command Mean [ms] Min [ms] Max [ms] Relative
../pks/target/release/pks check config/initializers/inflections.rb 579.9 ± 22.7 564.6 606.0 1.00
../pks/target/release/pks --experimental-parser check config/initializers/inflections.rb 1041.3 ± 10.6 1031.7 1052.7 1.80 ± 0.07
DISABLE_SPRING=1 bin/packwerk check config/initializers/inflections.rb 16693.2 ± 455.8 16361.6 17213.0 28.79 ± 1.37
bin/packwerk check config/initializers/inflections.rb 6749.6 ± 106.0 6658.2 6865.8 11.64 ± 0.49