Skip to content

Do not merge: Benchmarks on v1.1#111

Draft
curiousleo wants to merge 3 commits intomasterfrom
benchmarks-backport
Draft

Do not merge: Benchmarks on v1.1#111
curiousleo wants to merge 3 commits intomasterfrom
benchmarks-backport

Conversation

@curiousleo
Copy link
Copy Markdown
Collaborator

@curiousleo curiousleo commented Apr 22, 2020

This PR targets master and is not meant to be merged. It's meant as a long-lived branch where we regularly backport benchmarks for comparison.

This is the time taken for 100000 iterations.

$ stack bench random:bench --ba '--small'
[...]
Benchmark bench: RUNNING...
pure/random/Float                        mean 30.63 ms  ( +- 3.753 ms  )
pure/random/Double                       mean 54.18 ms  ( +- 3.741 ms  )
pure/random/Integer                      mean 43.56 ms  ( +- 280.9 μs  )
pure/random/Word8                        mean 13.97 ms  ( +- 122.4 μs  )
pure/random/Word16                       mean 14.61 ms  ( +- 797.7 μs  )
pure/random/Word32                       mean 22.88 ms  ( +- 180.1 μs  )
pure/random/Word64                       mean 45.57 ms  ( +- 320.6 μs  )
pure/random/Word                         mean 45.98 ms  ( +- 1.225 ms  )
pure/random/Int8                         mean 14.79 ms  ( +- 165.4 μs  )
pure/random/Int16                        mean 14.57 ms  ( +- 132.5 μs  )
pure/random/Int32                        mean 22.65 ms  ( +- 441.5 μs  )
pure/random/Int64                        mean 44.20 ms  ( +- 1.609 ms  )
pure/random/Int                          mean 46.91 ms  ( +- 2.589 ms  )
pure/random/Char                         mean 19.05 ms  ( +- 1.102 ms  )
pure/random/Bool                         mean 19.12 ms  ( +- 370.7 μs  )
pure/random/CChar                        mean 15.40 ms  ( +- 753.4 μs  )
pure/random/CSChar                       mean 14.60 ms  ( +- 216.1 μs  )
pure/random/CUChar                       mean 14.45 ms  ( +- 736.6 μs  )
pure/random/CShort                       mean 14.55 ms  ( +- 126.9 μs  )
pure/random/CUShort                      mean 14.61 ms  ( +- 687.0 μs  )
pure/random/CInt                         mean 22.79 ms  ( +- 317.2 μs  )
pure/random/CUInt                        mean 21.84 ms  ( +- 228.6 μs  )
pure/random/CLong                        mean 45.43 ms  ( +- 591.7 μs  )
pure/random/CULong                       mean 43.38 ms  ( +- 610.5 μs  )
pure/random/CPtrdiff                     mean 46.27 ms  ( +- 2.069 ms  )
pure/random/CSize                        mean 44.65 ms  ( +- 1.945 ms  )
pure/random/CWchar                       mean 22.69 ms  ( +- 223.5 μs  )
pure/random/CSigAtomic                   mean 26.34 ms  ( +- 3.080 ms  )
pure/random/CLLong                       mean 50.13 ms  ( +- 2.743 ms  )
pure/random/CULLong                      mean 49.09 ms  ( +- 5.879 ms  )
pure/random/CIntPtr                      mean 49.22 ms  ( +- 6.255 ms  )
pure/random/CUIntPtr                     mean 50.74 ms  ( +- 7.632 ms  )
pure/random/CIntMax                      mean 46.54 ms  ( +- 1.519 ms  )
pure/random/CUIntMax                     mean 45.84 ms  ( +- 2.030 ms  )
pure/randomR/full/Word8                  mean 18.74 ms  ( +- 415.9 μs  )
pure/randomR/full/Word16                 mean 18.54 ms  ( +- 501.8 μs  )
pure/randomR/full/Word32                 mean 29.78 ms  ( +- 906.2 μs  )
pure/randomR/full/Word64                 mean 55.32 ms  ( +- 1.097 ms  )
pure/randomR/full/Word                   mean 57.30 ms  ( +- 3.062 ms  )
pure/randomR/full/Int8                   mean 20.15 ms  ( +- 1.822 ms  )
pure/randomR/full/Int16                  mean 19.41 ms  ( +- 1.000 ms  )
pure/randomR/full/Int32                  mean 31.35 ms  ( +- 564.5 μs  )
pure/randomR/full/Int64                  mean 55.51 ms  ( +- 4.204 ms  )
pure/randomR/full/Int                    mean 57.90 ms  ( +- 4.530 ms  )
pure/randomR/full/Char                   mean 20.26 ms  ( +- 2.032 ms  )
pure/randomR/full/Bool                   mean 20.99 ms  ( +- 1.317 ms  )
pure/randomR/full/CChar                  mean 19.56 ms  ( +- 1.778 ms  )
pure/randomR/full/CSChar                 mean 19.39 ms  ( +- 904.6 μs  )
pure/randomR/full/CUChar                 mean 18.09 ms  ( +- 382.4 μs  )
pure/randomR/full/CShort                 mean 18.92 ms  ( +- 793.2 μs  )
pure/randomR/full/CUShort                mean 18.73 ms  ( +- 1.048 ms  )
pure/randomR/full/CInt                   mean 30.04 ms  ( +- 446.3 μs  )
pure/randomR/full/CUInt                  mean 29.52 ms  ( +- 697.5 μs  )
pure/randomR/full/CLong                  mean 54.68 ms  ( +- 1.499 ms  )
pure/randomR/full/CULong                 mean 56.45 ms  ( +- 3.207 ms  )
pure/randomR/full/CPtrdiff               mean 56.96 ms  ( +- 3.824 ms  )
pure/randomR/full/CSize                  mean 55.60 ms  ( +- 4.298 ms  )
pure/randomR/full/CWchar                 mean 29.23 ms  ( +- 472.7 μs  )
pure/randomR/full/CSigAtomic             mean 33.60 ms  ( +- 3.543 ms  )
pure/randomR/full/CLLong                 mean 63.56 ms  ( +- 15.16 ms  )
pure/randomR/full/CULLong                mean 53.21 ms  ( +- 1.380 ms  )
pure/randomR/full/CIntPtr                mean 56.56 ms  ( +- 2.942 ms  )
pure/randomR/full/CUIntPtr               mean 54.29 ms  ( +- 1.037 ms  )
pure/randomR/full/CIntMax                mean 54.77 ms  ( +- 2.211 ms  )
pure/randomR/full/CUIntMax               mean 56.42 ms  ( +- 2.947 ms  )
pure/randomR/excludeMax/Word8            mean 20.17 ms  ( +- 2.182 ms  )
pure/randomR/excludeMax/Word16           mean 18.21 ms  ( +- 285.1 μs  )
pure/randomR/excludeMax/Word32           mean 29.55 ms  ( +- 597.9 μs  )
pure/randomR/excludeMax/Word64           mean 50.27 ms  ( +- 1.643 ms  )
pure/randomR/excludeMax/Word             mean 52.96 ms  ( +- 3.181 ms  )
pure/randomR/excludeMax/Int8             mean 19.35 ms  ( +- 723.0 μs  )
pure/randomR/excludeMax/Int16            mean 18.96 ms  ( +- 867.3 μs  )
pure/randomR/excludeMax/Int32            mean 31.12 ms  ( +- 1.640 ms  )
pure/randomR/excludeMax/Int64            mean 53.86 ms  ( +- 2.772 ms  )
pure/randomR/excludeMax/Int              mean 51.41 ms  ( +- 738.3 μs  )
pure/randomR/excludeMax/Char             mean 18.92 ms  ( +- 498.5 μs  )
pure/randomR/excludeMax/Bool             mean 18.38 ms  ( +- 2.869 ms  )
pure/randomR/excludeMax/CChar            mean 21.89 ms  ( +- 1.502 ms  )
pure/randomR/excludeMax/CSChar           mean 20.03 ms  ( +- 1.568 ms  )
pure/randomR/excludeMax/CUChar           mean 21.80 ms  ( +- 4.873 ms  )
pure/randomR/excludeMax/CShort           mean 19.54 ms  ( +- 486.9 μs  )
pure/randomR/excludeMax/CUShort          mean 19.22 ms  ( +- 1.078 ms  )
pure/randomR/excludeMax/CInt             mean 30.84 ms  ( +- 1.533 ms  )
pure/randomR/excludeMax/CUInt            mean 30.05 ms  ( +- 1.054 ms  )
pure/randomR/excludeMax/CLong            mean 52.38 ms  ( +- 1.338 ms  )
pure/randomR/excludeMax/CULong           mean 51.10 ms  ( +- 1.459 ms  )
pure/randomR/excludeMax/CPtrdiff         mean 52.46 ms  ( +- 1.885 ms  )
pure/randomR/excludeMax/CSize            mean 51.21 ms  ( +- 2.680 ms  )
pure/randomR/excludeMax/CWchar           mean 31.90 ms  ( +- 1.504 ms  )
pure/randomR/excludeMax/CSigAtomic       mean 33.01 ms  ( +- 4.443 ms  )
pure/randomR/excludeMax/CLLong           mean 49.39 ms  ( +- 1.207 ms  )
pure/randomR/excludeMax/CULLong          mean 51.46 ms  ( +- 2.940 ms  )
pure/randomR/excludeMax/CIntPtr          mean 53.29 ms  ( +- 3.456 ms  )
pure/randomR/excludeMax/CUIntPtr         mean 48.06 ms  ( +- 805.5 μs  )
pure/randomR/excludeMax/CIntMax          mean 54.91 ms  ( +- 5.206 ms  )
pure/randomR/excludeMax/CUIntMax         mean 63.10 ms  ( +- 8.407 ms  )
pure/randomR/includeHalf/Word8           mean 24.14 ms  ( +- 7.551 ms  )
pure/randomR/includeHalf/Word16          mean 43.41 ms  ( +- 5.973 ms  )
pure/randomR/includeHalf/Word32          mean 61.66 ms  ( +- 13.50 ms  )
pure/randomR/includeHalf/Word64          mean 99.57 ms  ( +- 54.87 ms  )
pure/randomR/includeHalf/Word            mean 56.98 ms  ( +- 9.870 ms  )
pure/randomR/includeHalf/Int8            mean 21.24 ms  ( +- 2.317 ms  )
pure/randomR/includeHalf/Int16           mean 19.32 ms  ( +- 915.1 μs  )
pure/randomR/includeHalf/Int32           mean 34.83 ms  ( +- 6.819 ms  )
pure/randomR/includeHalf/Int64           mean 59.31 ms  ( +- 9.598 ms  )
pure/randomR/includeHalf/Int             mean 50.71 ms  ( +- 2.178 ms  )
pure/randomR/includeHalf/Char            mean 19.53 ms  ( +- 1.376 ms  )
pure/randomR/includeHalf/Bool            mean 20.50 ms  ( +- 2.718 ms  )
pure/randomR/includeHalf/CChar           mean 19.95 ms  ( +- 2.114 ms  )
pure/randomR/includeHalf/CSChar          mean 20.56 ms  ( +- 1.969 ms  )
pure/randomR/includeHalf/CUChar          mean 19.35 ms  ( +- 797.1 μs  )
pure/randomR/includeHalf/CShort          mean 19.64 ms  ( +- 1.105 ms  )
pure/randomR/includeHalf/CUShort         mean 18.49 ms  ( +- 350.9 μs  )
pure/randomR/includeHalf/CInt            mean 30.42 ms  ( +- 1.507 ms  )
pure/randomR/includeHalf/CUInt           mean 29.35 ms  ( +- 658.6 μs  )
pure/randomR/includeHalf/CLong           mean 49.34 ms  ( +- 490.6 μs  )
pure/randomR/includeHalf/CULong          mean 48.51 ms  ( +- 598.0 μs  )
pure/randomR/includeHalf/CPtrdiff        mean 50.53 ms  ( +- 1.676 ms  )
pure/randomR/includeHalf/CSize           mean 48.48 ms  ( +- 651.3 μs  )
pure/randomR/includeHalf/CWchar          mean 32.77 ms  ( +- 4.030 ms  )
pure/randomR/includeHalf/CSigAtomic      mean 35.07 ms  ( +- 5.300 ms  )
pure/randomR/includeHalf/CLLong          mean 57.92 ms  ( +- 8.024 ms  )
pure/randomR/includeHalf/CULLong         mean 55.57 ms  ( +- 5.102 ms  )
pure/randomR/includeHalf/CIntPtr         mean 51.96 ms  ( +- 1.913 ms  )
pure/randomR/includeHalf/CUIntPtr        mean 50.72 ms  ( +- 1.482 ms  )
pure/randomR/includeHalf/CIntMax         mean 50.25 ms  ( +- 841.9 μs  )
pure/randomR/includeHalf/CUIntMax        mean 50.34 ms  ( +- 1.172 ms  )
pure/randomR/unbounded/Float             mean 60.17 ms  ( +- 5.086 ms  )
pure/randomR/unbounded/Double            mean 92.29 ms  ( +- 8.487 ms  )
benchmarking pure/randomR/unbounded/Integer ... took 11.19 s, total 56 iterations
pure/randomR/unbounded/Integer           mean 208.6 ms  ( +- 14.77 ms  )

@curiousleo curiousleo changed the title Backport benchmarks - do not merge Benchmarks on v1.1 - do not merge Apr 22, 2020
@curiousleo curiousleo force-pushed the benchmarks-backport branch from 58cba36 to b2f8565 Compare April 22, 2020 16:20
@curiousleo
Copy link
Copy Markdown
Collaborator Author

Compare with the results here: #110

Very roughly speaking, generating a random value got between 100x and 1000x faster.

Next up: "value in a range" benchmarks.

@curiousleo
Copy link
Copy Markdown
Collaborator Author

current.txt: benchmarks on interface-to-performance as of d03e325

@curiousleo curiousleo changed the title Benchmarks on v1.1 - do not merge Do not merge: Benchmarks on v1.1 May 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant