Skip to content

Instantly share code, notes, and snippets.

@scottmcm
Created May 2, 2017 08:54
Show Gist options
  • Save scottmcm/36a6d8db52870f1a60612f811b5ff69a to your computer and use it in GitHub Desktop.
Save scottmcm/36a6d8db52870f1a60612f811b5ff69a to your computer and use it in GitHub Desktop.
Slice Rotate Benchmarks

Using the three-reverse algorithm

test slice::rotate_huge_by1                              ... bench:   6,999,900 ns/iter (+/- 386,886) = 5991 MB/s
test slice::rotate_huge_by1234577_big                    ... bench:   6,819,508 ns/iter (+/- 1,343,022) = 6150 MB/s
test slice::rotate_huge_by1234577_bytes                  ... bench:  23,073,171 ns/iter (+/- 697,303) = 1817 MB/s
test slice::rotate_huge_by1234577_strings                ... bench:   6,979,177 ns/iter (+/- 556,076) = 6009 MB/s
test slice::rotate_huge_by1234577_u64                    ... bench:   6,972,761 ns/iter (+/- 920,141) = 6015 MB/s
test slice::rotate_huge_by9199_big                       ... bench:   6,883,996 ns/iter (+/- 197,051) = 6092 MB/s
test slice::rotate_huge_by9199_bytes                     ... bench:  22,852,719 ns/iter (+/- 268,889) = 1835 MB/s
test slice::rotate_huge_by9199_strings                   ... bench:   7,073,967 ns/iter (+/- 886,324) = 5929 MB/s
test slice::rotate_huge_by9199_u64                       ... bench:   7,027,792 ns/iter (+/- 336,332) = 5968 MB/s
test slice::rotate_huge_half                             ... bench:   6,913,499 ns/iter (+/- 770,229) = 6066 MB/s
test slice::rotate_huge_half_plus_one                    ... bench:   6,897,731 ns/iter (+/- 544,164) = 6080 MB/s
test slice::rotate_medium_by1                            ... bench:       5,219 ns/iter (+/- 124) = 14037 MB/s
test slice::rotate_medium_by727_bytes                    ... bench:      38,142 ns/iter (+/- 16) = 1920 MB/s
test slice::rotate_medium_by727_strings                  ... bench:       5,609 ns/iter (+/- 53) = 13059 MB/s
test slice::rotate_medium_by727_u64                      ... bench:       5,256 ns/iter (+/- 80) = 13939 MB/s
test slice::rotate_medium_half                           ... bench:       5,131 ns/iter (+/- 45) = 14278 MB/s
test slice::rotate_medium_half_plus_one                  ... bench:       5,144 ns/iter (+/- 70) = 14242 MB/s
test slice::rotate_tiny_by1                              ... bench:          18 ns/iter (+/- 0) = 7111 MB/s
test slice::rotate_tiny_half                             ... bench:          19 ns/iter (+/- 0) = 6736 MB/s
test slice::rotate_tiny_half_plus_one                    ... bench:          19 ns/iter (+/- 0) = 6736 MB/s

Using the code in the PR

test slice::rotate_huge_by1                              ... bench:   3,393,549 ns/iter (+/- 395,410) = 12359 MB/s
test slice::rotate_huge_by1234577_big                    ... bench:   6,225,741 ns/iter (+/- 755,782) = 6737 MB/s
test slice::rotate_huge_by1234577_bytes                  ... bench:   6,195,681 ns/iter (+/- 691,574) = 6769 MB/s
test slice::rotate_huge_by1234577_strings                ... bench:   6,296,223 ns/iter (+/- 975,933) = 6661 MB/s
test slice::rotate_huge_by1234577_u64                    ... bench:   6,208,151 ns/iter (+/- 865,565) = 6756 MB/s
test slice::rotate_huge_by9199_big                       ... bench:   3,691,276 ns/iter (+/- 375,627) = 11362 MB/s
test slice::rotate_huge_by9199_bytes                     ... bench:   3,759,664 ns/iter (+/- 398,213) = 11156 MB/s
test slice::rotate_huge_by9199_strings                   ... bench:   3,889,921 ns/iter (+/- 840,427) = 10782 MB/s
test slice::rotate_huge_by9199_u64                       ... bench:   3,702,450 ns/iter (+/- 518,206) = 11328 MB/s
test slice::rotate_huge_half                             ... bench:   5,124,187 ns/iter (+/- 866,734) = 8185 MB/s
test slice::rotate_huge_half_plus_one                    ... bench:   5,176,461 ns/iter (+/- 881,457) = 8102 MB/s
test slice::rotate_medium_by1                            ... bench:       1,949 ns/iter (+/- 26) = 37590 MB/s
test slice::rotate_medium_by727_bytes                    ... bench:       3,084 ns/iter (+/- 24) = 23756 MB/s
test slice::rotate_medium_by727_strings                  ... bench:       2,995 ns/iter (+/- 46) = 24456 MB/s
test slice::rotate_medium_by727_u64                      ... bench:       2,950 ns/iter (+/- 36) = 24835 MB/s
test slice::rotate_medium_half                           ... bench:       2,765 ns/iter (+/- 59) = 26496 MB/s
test slice::rotate_medium_half_plus_one                  ... bench:       2,634 ns/iter (+/- 63) = 27814 MB/s
test slice::rotate_tiny_by1                              ... bench:          17 ns/iter (+/- 0) = 7529 MB/s
test slice::rotate_tiny_half                             ... bench:          19 ns/iter (+/- 0) = 6736 MB/s
test slice::rotate_tiny_half_plus_one                    ... bench:          19 ns/iter (+/- 0) = 6736 MB/s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment