Skip to content

Instantly share code, notes, and snippets.

@mbrubeck
Last active May 2, 2022 22:35
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbrubeck/bb7d598716e8a6c85f1c5163aed03c8c to your computer and use it in GitHub Desktop.
Save mbrubeck/bb7d598716e8a6c85f1c5163aed03c8c to your computer and use it in GitHub Desktop.
Rust opt-level measurements
test environment
rustc 1.16.0-nightly (5d994d8b7 2017-01-05)
Thinkpad X1 Carbon Touch (2012)
Intel(R) Core(TM) i7-3667U CPU @ 2.00GHz
cpufreq-set -g performance
no other programs running
all results are after one run to warm up the cache
regex
opt-level = 3
touch src/lib.rs && /usr/bin/time -a cargo build --release (3 runs):
24.52user 0.14system 0:24.70elapsed 99%CPU (0avgtext+0avgdata 218240maxresident)k
24.60user 0.15system 0:24.78elapsed 99%CPU (0avgtext+0avgdata 218008maxresident)k
24.48user 0.15system 0:24.66elapsed 99%CPU (0avgtext+0avgdata 218056maxresident)k
cargo bench (best of 3):
test multiple ... bench: 23,207 ns/iter (+/- 187)
test single ... bench: 3,041 ns/iter (+/- 209)
size
text data bss dec hex filename
1090138 53553 3672 1147363 1181e3 target/release/re_set-f89877e5dcd3b932
opt-level = 2
touch src/lib.rs && /usr/bin/time -a cargo build --release
23.68user 0.10system 0:23.81elapsed 99%CPU (0avgtext+0avgdata 218028maxresident)k
23.81user 0.08system 0:23.92elapsed 99%CPU (0avgtext+0avgdata 218128maxresident)k
23.73user 0.14system 0:23.90elapsed 99%CPU (0avgtext+0avgdata 217796maxresident)k
cargo bench (best of 3):
test multiple ... bench: 23,234 ns/iter (+/- 1,551)
test single ... bench: 2,997 ns/iter (+/- 204)
size
text data bss dec hex filename
1091134 53601 3672 1148407 1185f7 target/release/re_set-e8e4ae70c9ba69fd
quickersort
opt-level = 3
touch src/lib.rs && /usr/bin/time -a cargo build --release
0.63user 0.04system 0:00.69elapsed 97%CPU (0avgtext+0avgdata 105212maxresident)k
0.65user 0.01system 0:00.69elapsed 96%CPU (0avgtext+0avgdata 105572maxresident)k
0.65user 0.01system 0:00.69elapsed 96%CPU (0avgtext+0avgdata 105232maxresident)k
cargo bench:
test sort_big_random_large ... bench: 925,884 ns/iter (+/- 15,962) = 345 MB/s
test sort_big_random_medium ... bench: 5,762 ns/iter (+/- 95) = 555 MB/s
test sort_big_random_small ... bench: 258 ns/iter (+/- 1) = 620 MB/s
test sort_big_sorted ... bench: 15,735 ns/iter (+/- 187) = 20336 MB/s
test sort_enormous ... bench: 7,928,236 ns/iter (+/- 72,143) = 100 MB/s
test sort_equals ... bench: 972 ns/iter (+/- 4) = 8230 MB/s
test sort_few_unique ... bench: 41,723 ns/iter (+/- 468) = 95 MB/s
test sort_huge ... bench: 7,942,475 ns/iter (+/- 357,500) = 100 MB/s
test sort_partially_sorted ... bench: 749,801 ns/iter (+/- 10,973) = 106 MB/s
test sort_random_enormous_heapsort ... bench: 141,783,043 ns/iter (+/- 2,140,109) = 56 MB/s
test sort_random_huge_heapsort ... bench: 6,728,491 ns/iter (+/- 34,297) = 118 MB/s
test sort_random_large ... bench: 481,210 ns/iter (+/- 12,409) = 166 MB/s
test sort_random_large_heapsort ... bench: 487,372 ns/iter (+/- 7,447) = 164 MB/s
test sort_random_medium ... bench: 2,686 ns/iter (+/- 28) = 297 MB/s
test sort_random_medium_heapsort ... bench: 2,959 ns/iter (+/- 24) = 270 MB/s
test sort_random_medium_insertion_sort ... bench: 3,246 ns/iter (+/- 26) = 246 MB/s
test sort_random_small ... bench: 177 ns/iter (+/- 3) = 225 MB/s
test sort_sorted ... bench: 9,448 ns/iter (+/- 76) = 8467 MB/s
test sort_strings ... bench: 3,092,310 ns/iter (+/- 59,398) = 96 MB/s
test sort_tiny_random_large ... bench: 399,032 ns/iter (+/- 5,322) = 25 MB/s
test sort_tiny_random_medium ... bench: 2,619 ns/iter (+/- 51) = 38 MB/s
test sort_tiny_random_small ... bench: 137 ns/iter (+/- 1) = 36 MB/s
size
text data bss dec hex filename
713470 42481 3704 759655 b9767 target/release/bench-100764d11fe0dffd
opt-level = 2
touch src/lib.rs && /usr/bin/time -a cargo build --release
0.63user 0.02system 0:00.69elapsed 95%CPU (0avgtext+0avgdata 105040maxresident)k
0.62user 0.03system 0:00.68elapsed 96%CPU (0avgtext+0avgdata 104464maxresident)k
0.62user 0.03system 0:00.68elapsed 96%CPU (0avgtext+0avgdata 104272maxresident)k
cargo bench
test sort_big_random_large ... bench: 901,720 ns/iter (+/- 8,952) = 354 MB/s
test sort_big_random_medium ... bench: 5,676 ns/iter (+/- 52) = 563 MB/s
test sort_big_random_small ... bench: 255 ns/iter (+/- 17) = 627 MB/s
test sort_big_sorted ... bench: 15,724 ns/iter (+/- 249) = 20351 MB/s
test sort_enormous ... bench: 7,961,900 ns/iter (+/- 59,145) = 100 MB/s
test sort_equals ... bench: 974 ns/iter (+/- 5) = 8213 MB/s
test sort_few_unique ... bench: 41,341 ns/iter (+/- 735) = 96 MB/s
test sort_huge ... bench: 7,959,889 ns/iter (+/- 62,484) = 100 MB/s
test sort_partially_sorted ... bench: 743,861 ns/iter (+/- 11,785) = 107 MB/s
test sort_random_enormous_heapsort ... bench: 136,968,790 ns/iter (+/- 2,596,488) = 58 MB/s
test sort_random_huge_heapsort ... bench: 6,821,167 ns/iter (+/- 427,245) = 117 MB/s
test sort_random_large ... bench: 472,327 ns/iter (+/- 6,005) = 169 MB/s
test sort_random_large_heapsort ... bench: 500,025 ns/iter (+/- 12,950) = 159 MB/s
test sort_random_medium ... bench: 2,628 ns/iter (+/- 176) = 304 MB/s
test sort_random_medium_heapsort ... bench: 3,068 ns/iter (+/- 18) = 260 MB/s
test sort_random_medium_insertion_sort ... bench: 3,243 ns/iter (+/- 75) = 246 MB/s
test sort_random_small ... bench: 189 ns/iter (+/- 11) = 211 MB/s
test sort_sorted ... bench: 9,437 ns/iter (+/- 634) = 8477 MB/s
test sort_strings ... bench: 3,071,594 ns/iter (+/- 217,874) = 94 MB/s
test sort_tiny_random_large ... bench: 396,277 ns/iter (+/- 9,494) = 25 MB/s
test sort_tiny_random_medium ... bench: 2,614 ns/iter (+/- 179) = 38 MB/s
test sort_tiny_random_small ... bench: 140 ns/iter (+/- 10) = 35 MB/s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment