[Builtins] Add 'ListToConstr' and 'DataToConstr'
This is a competitor of #5486, let's see how it performs.
This adds the listToConstr builtin whose Plutus type is
all a. list a -> sop [] [a, (list a)]
The idea is that we can use this builtin to implement faster pattern matching over built-in lists by piggy-backing on case that we use for pattern matching over sums-of-products:
matchList : all a r. list a -> r -> (a -> list a -> r) -> r
= /\a r ->
\(xs : list a) (nilCase : r) (consCase : a -> list a -> r) ->
case r (listToConstr {a} xs) [nilCase, consCase]
Implementation-wise this requires us to add the following class:
class ToConstr term where
toConstr
:: forall rep. KnownTypeAst TyName (UniOf term) rep
=> Word64 -> [term] -> Opaque term rep
and add it to HasMeaningIn uni val.
The meaning of the listToConstr builtin is implemented as follows:
toBuiltinMeaning _semvar ListToConstr =
let listToConstrDenotation
:: KnownTypeAst TyName DefaultUni a
=> SomeConstant uni [a]
-> EvaluationResult (Opaque val (TySopRep '[ '[], '[a, [a]] ]))
listToConstrDenotation (SomeConstant (Some (ValueOf uniListA xs0))) = do
DefaultUniList uniA <- pure uniListA
pure $ case xs0 of
[] -> toConstr 0 []
x : xs -> toConstr 1 [fromValueOf uniA x, fromValueOf uniListA xs]
{-# INLINE listToConstrDenotation #-}
in makeBuiltinMeaning
listToConstrDenotation
(\_ _ -> ExBudgetLast mempty)
i.e. it simply turns the outer constructor of a list into an SOP term leaving all other constructors of the list intact.
The only interesting remaining part is that we make matchList an Internal builtin (i.e. a NOINLINE one) and tell the plugin to replace that builtin with the definition of matchList given above.
/benchmark plutus-benchmark:lists
Click here to check the status of your benchmark.
/benchmark plutus-benchmark:lists
Click here to check the status of your benchmark.
Comparing benchmark results of 'plutus-benchmark:lists' on 'b8a74e7b4' (base) and '9d99fc6ed' (PR)
Results table
| Script | b8a74e7 | 9d99fc6 | Change |
|---|---|---|---|
| sort/ghcSort/10 | 36.74 μs | 37.28 μs | +1.5% |
| sort/ghcSort/20 | 85.89 μs | 87.10 μs | +1.4% |
| sort/ghcSort/30 | 131.6 μs | 133.1 μs | +1.1% |
| sort/ghcSort/40 | 194.6 μs | 197.2 μs | +1.3% |
| sort/ghcSort/50 | 236.2 μs | 237.5 μs | +0.6% |
| sort/ghcSort/60 | 299.5 μs | 304.3 μs | +1.6% |
| sort/ghcSort/70 | 390.3 μs | 396.1 μs | +1.5% |
| sort/ghcSort/80 | 440.1 μs | 448.3 μs | +1.9% |
| sort/ghcSort/90 | 488.0 μs | 494.8 μs | +1.4% |
| sort/ghcSort/100 | 549.3 μs | 556.2 μs | +1.3% |
| sort/ghcSort/110 | 607.4 μs | 613.4 μs | +1.0% |
| sort/ghcSort/120 | 689.6 μs | 695.6 μs | +0.9% |
| sort/ghcSort/130 | 842.9 μs | 856.7 μs | +1.6% |
| sort/ghcSort/140 | 899.9 μs | 908.0 μs | +0.9% |
| sort/ghcSort/150 | 962.0 μs | 969.4 μs | +0.8% |
| sort/ghcSort/160 | 1.021 ms | 1.033 ms | +1.2% |
| sort/ghcSort/170 | 1.079 ms | 1.091 ms | +1.1% |
| sort/ghcSort/180 | 1.136 ms | 1.150 ms | +1.2% |
| sort/ghcSort/190 | 1.204 ms | 1.214 ms | +0.8% |
| sort/ghcSort/200 | 1.296 ms | 1.308 ms | +0.9% |
| sort/ghcSort/210 | 1.361 ms | 1.367 ms | +0.4% |
| sort/ghcSort/220 | 1.417 ms | 1.430 ms | +0.9% |
| sort/ghcSort/230 | 1.506 ms | 1.528 ms | +1.5% |
| sort/ghcSort/240 | 1.596 ms | 1.620 ms | +1.5% |
| sort/ghcSort/250 | 1.692 ms | 1.702 ms | +0.6% |
| sort/ghcSort/260 | 1.926 ms | 1.951 ms | +1.3% |
| sort/ghcSort/270 | 1.970 ms | 2.004 ms | +1.7% |
| sort/ghcSort/280 | 2.055 ms | 2.069 ms | +0.7% |
| sort/ghcSort/290 | 2.118 ms | 2.144 ms | +1.2% |
| sort/ghcSort/300 | 2.191 ms | 2.218 ms | +1.2% |
| sort/ghcSort/310 | 2.262 ms | 2.291 ms | +1.3% |
| sort/ghcSort/320 | 2.342 ms | 2.368 ms | +1.1% |
| sort/ghcSort/330 | 2.431 ms | 2.425 ms | -0.2% |
| sort/ghcSort/340 | 2.503 ms | 2.525 ms | +0.9% |
| sort/ghcSort/350 | 2.546 ms | 2.567 ms | +0.8% |
| sort/ghcSort/360 | 2.608 ms | 2.639 ms | +1.2% |
| sort/ghcSort/370 | 2.686 ms | 2.708 ms | +0.8% |
| sort/ghcSort/380 | 2.831 ms | 2.800 ms | -1.1% |
| sort/ghcSort/390 | 2.896 ms | 2.927 ms | +1.1% |
| sort/ghcSort/400 | 2.965 ms | 3.004 ms | +1.3% |
| sort/ghcSort/410 | 2.997 ms | 3.040 ms | +1.4% |
| sort/ghcSort/420 | 3.114 ms | 3.146 ms | +1.0% |
| sort/ghcSort/430 | 3.154 ms | 3.191 ms | +1.2% |
| sort/ghcSort/440 | 3.250 ms | 3.286 ms | +1.1% |
| sort/ghcSort/450 | 3.427 ms | 3.470 ms | +1.3% |
| sort/ghcSort/460 | 3.479 ms | 3.516 ms | +1.1% |
| sort/ghcSort/470 | 3.546 ms | 3.598 ms | +1.5% |
| sort/ghcSort/480 | 3.680 ms | 3.730 ms | +1.4% |
| sort/ghcSort/490 | 3.765 ms | 3.801 ms | +1.0% |
| sort/ghcSort/500 | 3.877 ms | 3.904 ms | +0.7% |
| sort/insertionSort/10 | 34.22 μs | 34.69 μs | +1.4% |
| sort/insertionSort/20 | 122.9 μs | 124.0 μs | +0.9% |
| sort/insertionSort/30 | 267.6 μs | 268.7 μs | +0.4% |
| sort/insertionSort/40 | 470.2 μs | 474.6 μs | +0.9% |
| sort/insertionSort/50 | 726.6 μs | 731.6 μs | +0.7% |
| sort/insertionSort/60 | 1.042 ms | 1.055 ms | +1.2% |
| sort/insertionSort/70 | 1.464 ms | 1.434 ms | -2.0% |
| sort/insertionSort/80 | 1.839 ms | 1.867 ms | +1.5% |
| sort/insertionSort/90 | 2.416 ms | 2.346 ms | -2.9% |
| sort/insertionSort/100 | 2.858 ms | 2.885 ms | +0.9% |
| sort/insertionSort/110 | 3.470 ms | 3.506 ms | +1.0% |
| sort/insertionSort/120 | 4.120 ms | 4.159 ms | +0.9% |
| sort/insertionSort/130 | 5.009 ms | 4.881 ms | -2.6% |
| sort/insertionSort/140 | 5.613 ms | 5.640 ms | +0.5% |
| sort/insertionSort/150 | 6.486 ms | 6.490 ms | +0.1% |
| sort/insertionSort/160 | 7.474 ms | 7.383 ms | -1.2% |
| sort/insertionSort/170 | 8.609 ms | 8.332 ms | -3.2% |
| sort/insertionSort/180 | 9.638 ms | 9.331 ms | -3.2% |
| sort/insertionSort/190 | 10.36 ms | 10.46 ms | +1.0% |
| sort/insertionSort/200 | 11.48 ms | 11.54 ms | +0.5% |
| sort/insertionSort/210 | 12.71 ms | 12.74 ms | +0.2% |
| sort/insertionSort/220 | 14.31 ms | 14.01 ms | -2.1% |
| sort/insertionSort/230 | 15.37 ms | 15.31 ms | -0.4% |
| sort/insertionSort/240 | 16.62 ms | 16.70 ms | +0.5% |
| sort/insertionSort/250 | 18.68 ms | 18.08 ms | -3.2% |
| sort/insertionSort/260 | 19.49 ms | 19.59 ms | +0.5% |
| sort/insertionSort/270 | 21.02 ms | 21.12 ms | +0.5% |
| sort/insertionSort/280 | 22.49 ms | 22.74 ms | +1.1% |
| sort/insertionSort/290 | 24.30 ms | 24.43 ms | +0.5% |
| sort/insertionSort/300 | 26.10 ms | 26.06 ms | -0.2% |
| sort/insertionSort/310 | 27.75 ms | 28.02 ms | +1.0% |
| sort/insertionSort/320 | 30.87 ms | 29.83 ms | -3.4% |
| sort/insertionSort/330 | 32.47 ms | 31.81 ms | -2.0% |
| sort/insertionSort/340 | 35.05 ms | 33.55 ms | -4.3% |
| sort/insertionSort/350 | 37.00 ms | 35.79 ms | -3.3% |
| sort/insertionSort/360 | 39.02 ms | 37.84 ms | -3.0% |
| sort/insertionSort/370 | 40.00 ms | 40.22 ms | +0.5% |
| sort/insertionSort/380 | 43.77 ms | 42.36 ms | -3.2% |
| sort/insertionSort/390 | 44.32 ms | 44.45 ms | +0.3% |
| sort/insertionSort/400 | 47.34 ms | 46.92 ms | -0.9% |
| sort/insertionSort/410 | 51.33 ms | 49.48 ms | -3.6% |
| sort/insertionSort/420 | 53.70 ms | 51.95 ms | -3.3% |
| sort/insertionSort/430 | 55.90 ms | 54.52 ms | -2.5% |
| sort/insertionSort/440 | 56.65 ms | 57.10 ms | +0.8% |
| sort/insertionSort/450 | 59.24 ms | 59.98 ms | +1.2% |
| sort/insertionSort/460 | 62.08 ms | 62.59 ms | +0.8% |
| sort/insertionSort/470 | 66.02 ms | 65.21 ms | -1.2% |
| sort/insertionSort/480 | 67.44 ms | 68.30 ms | +1.3% |
| sort/insertionSort/490 | 73.46 ms | 71.56 ms | -2.6% |
| sort/insertionSort/500 | 75.87 ms | 74.42 ms | -1.9% |
| sort/mergeSort/10 | 87.96 μs | 90.07 μs | +2.4% |
| sort/mergeSort/20 | 213.3 μs | 219.3 μs | +2.8% |
| sort/mergeSort/30 | 350.7 μs | 361.9 μs | +3.2% |
| sort/mergeSort/40 | 498.3 μs | 510.6 μs | +2.5% |
| sort/mergeSort/50 | 647.3 μs | 664.4 μs | +2.6% |
| sort/mergeSort/60 | 815.7 μs | 837.9 μs | +2.7% |
| sort/mergeSort/70 | 983.0 μs | 1.005 ms | +2.2% |
| sort/mergeSort/80 | 1.154 ms | 1.181 ms | +2.3% |
| sort/mergeSort/90 | 1.330 ms | 1.357 ms | +2.0% |
| sort/mergeSort/100 | 1.496 ms | 1.536 ms | +2.7% |
| sort/mergeSort/110 | 1.723 ms | 1.721 ms | -0.1% |
| sort/mergeSort/120 | 1.918 ms | 1.914 ms | -0.2% |
| sort/mergeSort/130 | 2.138 ms | 2.127 ms | -0.5% |
| sort/mergeSort/140 | 2.245 ms | 2.292 ms | +2.1% |
| sort/mergeSort/150 | 2.415 ms | 2.469 ms | +2.2% |
| sort/mergeSort/160 | 2.614 ms | 2.677 ms | +2.4% |
| sort/mergeSort/170 | 2.800 ms | 2.869 ms | +2.5% |
| sort/mergeSort/180 | 2.998 ms | 3.063 ms | +2.2% |
| sort/mergeSort/190 | 3.198 ms | 3.279 ms | +2.5% |
| sort/mergeSort/200 | 3.383 ms | 3.450 ms | +2.0% |
| sort/mergeSort/210 | 3.587 ms | 3.668 ms | +2.3% |
| sort/mergeSort/220 | 3.771 ms | 3.856 ms | +2.3% |
| sort/mergeSort/230 | 4.046 ms | 4.082 ms | +0.9% |
| sort/mergeSort/240 | 4.198 ms | 4.291 ms | +2.2% |
| sort/mergeSort/250 | 4.572 ms | 4.527 ms | -1.0% |
| sort/mergeSort/260 | 4.647 ms | 4.751 ms | +2.2% |
| sort/mergeSort/270 | 4.843 ms | 4.910 ms | +1.4% |
| sort/mergeSort/280 | 5.000 ms | 5.122 ms | +2.4% |
| sort/mergeSort/290 | 5.200 ms | 5.311 ms | +2.1% |
| sort/mergeSort/300 | 5.397 ms | 5.513 ms | +2.1% |
| sort/mergeSort/310 | 5.633 ms | 5.734 ms | +1.8% |
| sort/mergeSort/320 | 5.850 ms | 5.990 ms | +2.4% |
| sort/mergeSort/330 | 6.033 ms | 6.168 ms | +2.2% |
| sort/mergeSort/340 | 6.247 ms | 6.379 ms | +2.1% |
| sort/mergeSort/350 | 6.657 ms | 6.620 ms | -0.6% |
| sort/mergeSort/360 | 6.884 ms | 6.826 ms | -0.8% |
| sort/mergeSort/370 | 6.901 ms | 7.057 ms | +2.3% |
| sort/mergeSort/380 | 7.097 ms | 7.284 ms | +2.6% |
| sort/mergeSort/390 | 7.352 ms | 7.512 ms | +2.2% |
| sort/mergeSort/400 | 7.763 ms | 7.698 ms | -0.8% |
| sort/mergeSort/410 | 7.756 ms | 7.946 ms | +2.4% |
| sort/mergeSort/420 | 7.992 ms | 8.171 ms | +2.2% |
| sort/mergeSort/430 | 8.504 ms | 8.421 ms | -1.0% |
| sort/mergeSort/440 | 8.391 ms | 8.579 ms | +2.2% |
| sort/mergeSort/450 | 8.613 ms | 8.811 ms | +2.3% |
| sort/mergeSort/460 | 8.857 ms | 9.051 ms | +2.2% |
| sort/mergeSort/470 | 9.107 ms | 9.298 ms | +2.1% |
| sort/mergeSort/480 | 9.347 ms | 9.531 ms | +2.0% |
| sort/mergeSort/490 | 9.843 ms | 9.766 ms | -0.8% |
| sort/mergeSort/500 | 9.832 ms | 10.04 ms | +2.1% |
| sort/quickSort/10 | 80.44 μs | 81.19 μs | +0.9% |
| sort/quickSort/20 | 294.7 μs | 297.9 μs | +1.1% |
| sort/quickSort/30 | 659.2 μs | 655.7 μs | -0.5% |
| sort/quickSort/40 | 1.158 ms | 1.166 ms | +0.7% |
| sort/quickSort/50 | 1.819 ms | 1.831 ms | +0.7% |
| sort/quickSort/60 | 2.628 ms | 2.651 ms | +0.9% |
| sort/quickSort/70 | 3.581 ms | 3.610 ms | +0.8% |
| sort/quickSort/80 | 4.679 ms | 4.723 ms | +0.9% |
| sort/quickSort/90 | 5.950 ms | 6.021 ms | +1.2% |
| sort/quickSort/100 | 7.249 ms | 7.346 ms | +1.3% |
| sort/quickSort/110 | 8.808 ms | 8.931 ms | +1.4% |
| sort/quickSort/120 | 10.46 ms | 10.58 ms | +1.1% |
| sort/quickSort/130 | 12.24 ms | 12.39 ms | +1.2% |
| sort/quickSort/140 | 14.09 ms | 14.29 ms | +1.4% |
| sort/quickSort/150 | 16.33 ms | 16.47 ms | +0.9% |
| sort/quickSort/160 | 18.48 ms | 18.67 ms | +1.0% |
| sort/quickSort/170 | 20.79 ms | 21.02 ms | +1.1% |
| sort/quickSort/180 | 23.43 ms | 23.63 ms | +0.9% |
| sort/quickSort/190 | 25.99 ms | 26.31 ms | +1.2% |
| sort/quickSort/200 | 28.81 ms | 29.05 ms | +0.8% |
| sort/quickSort/210 | 31.71 ms | 32.15 ms | +1.4% |
| sort/quickSort/220 | 34.77 ms | 35.20 ms | +1.2% |
| sort/quickSort/230 | 38.15 ms | 38.66 ms | +1.3% |
| sort/quickSort/240 | 41.47 ms | 42.17 ms | +1.7% |
| sort/quickSort/250 | 44.92 ms | 45.57 ms | +1.4% |
| sort/quickSort/260 | 48.58 ms | 49.37 ms | +1.6% |
| sort/quickSort/270 | 52.30 ms | 53.22 ms | +1.8% |
| sort/quickSort/280 | 56.24 ms | 57.35 ms | +2.0% |
| sort/quickSort/290 | 60.35 ms | 61.39 ms | +1.7% |
| sort/quickSort/300 | 64.77 ms | 65.80 ms | +1.6% |
| sort/quickSort/310 | 69.18 ms | 70.24 ms | +1.5% |
| sort/quickSort/320 | 73.77 ms | 74.94 ms | +1.6% |
| sort/quickSort/330 | 78.11 ms | 79.88 ms | +2.3% |
| sort/quickSort/340 | 84.15 ms | 85.44 ms | +1.5% |
| sort/quickSort/350 | 88.20 ms | 90.12 ms | +2.2% |
| sort/quickSort/360 | 93.29 ms | 95.44 ms | +2.3% |
| sort/quickSort/370 | 98.79 ms | 100.6 ms | +1.8% |
| sort/quickSort/380 | 104.4 ms | 106.3 ms | +1.8% |
| sort/quickSort/390 | 110.2 ms | 111.7 ms | +1.4% |
| sort/quickSort/400 | 116.1 ms | 118.1 ms | +1.7% |
| sort/quickSort/410 | 121.6 ms | 123.9 ms | +1.9% |
| sort/quickSort/420 | 128.1 ms | 130.6 ms | +2.0% |
| sort/quickSort/430 | 134.7 ms | 136.8 ms | +1.6% |
| sort/quickSort/440 | 140.3 ms | 143.3 ms | +2.1% |
| sort/quickSort/450 | 147.2 ms | 150.2 ms | +2.0% |
| sort/quickSort/460 | 154.5 ms | 157.1 ms | +1.7% |
| sort/quickSort/470 | 161.0 ms | 163.5 ms | +1.6% |
| sort/quickSort/480 | 168.7 ms | 171.9 ms | +1.9% |
| sort/quickSort/490 | 175.6 ms | 178.9 ms | +1.9% |
| sort/quickSort/500 | 182.2 ms | 185.7 ms | +1.9% |
| sum/compiled-from-Haskell/sum-right-builtin/10 | 8.388 μs | 6.784 μs | -19.1% |
| sum/compiled-from-Haskell/sum-right-builtin/50 | 39.28 μs | 30.84 μs | -21.5% |
| sum/compiled-from-Haskell/sum-right-builtin/100 | 79.08 μs | 62.56 μs | -20.9% |
| sum/compiled-from-Haskell/sum-right-builtin/500 | 430.4 μs | 333.3 μs | -22.6% |
| sum/compiled-from-Haskell/sum-right-builtin/1000 | 953.2 μs | 725.1 μs | -23.9% |
| sum/compiled-from-Haskell/sum-right-builtin/5000 | 6.680 ms | 5.448 ms | -18.4% |
| sum/compiled-from-Haskell/sum-right-builtin/10000 | 14.88 ms | 12.02 ms | -19.2% |
| sum/compiled-from-Haskell/sum-right-Scott/10 | 6.762 μs | 6.954 μs | +2.8% |
| sum/compiled-from-Haskell/sum-right-Scott/50 | 31.20 μs | 32.38 μs | +3.8% |
| sum/compiled-from-Haskell/sum-right-Scott/100 | 62.63 μs | 64.71 μs | +3.3% |
| sum/compiled-from-Haskell/sum-right-Scott/500 | 336.0 μs | 344.6 μs | +2.6% |
| sum/compiled-from-Haskell/sum-right-Scott/1000 | 737.6 μs | 756.8 μs | +2.6% |
| sum/compiled-from-Haskell/sum-right-Scott/5000 | 5.671 ms | 5.771 ms | +1.8% |
| sum/compiled-from-Haskell/sum-right-Scott/10000 | 13.96 ms | 14.19 ms | +1.6% |
| sum/compiled-from-Haskell/sum-right-data/10 | 20.29 μs | 20.80 μs | +2.5% |
| sum/compiled-from-Haskell/sum-right-data/50 | 102.8 μs | 99.95 μs | -2.8% |
| sum/compiled-from-Haskell/sum-right-data/100 | 195.1 μs | 199.6 μs | +2.3% |
| sum/compiled-from-Haskell/sum-right-data/500 | 1.109 ms | 1.131 ms | +2.0% |
| sum/compiled-from-Haskell/sum-right-data/1000 | 2.587 ms | 2.619 ms | +1.2% |
| sum/compiled-from-Haskell/sum-right-data/5000 | 14.95 ms | 15.14 ms | +1.3% |
| sum/compiled-from-Haskell/sum-right-data/10000 | 31.62 ms | 32.23 ms | +1.9% |
| sum/compiled-from-Haskell/sum-left-builtin/10 | 8.016 μs | 7.066 μs | -11.9% |
| sum/compiled-from-Haskell/sum-left-builtin/50 | 38.19 μs | 31.47 μs | -17.6% |
| sum/compiled-from-Haskell/sum-left-builtin/100 | 76.13 μs | 64.97 μs | -14.7% |
| sum/compiled-from-Haskell/sum-left-builtin/500 | 409.2 μs | 334.9 μs | -18.2% |
| sum/compiled-from-Haskell/sum-left-builtin/1000 | 918.6 μs | 720.7 μs | -21.5% |
| sum/compiled-from-Haskell/sum-left-builtin/5000 | 6.528 ms | 5.300 ms | -18.8% |
| sum/compiled-from-Haskell/sum-left-builtin/10000 | 14.32 ms | 12.17 ms | -15.0% |
| sum/compiled-from-Haskell/sum-left-Scott/10 | 6.489 μs | 7.029 μs | +8.3% |
| sum/compiled-from-Haskell/sum-left-Scott/50 | 30.24 μs | 32.42 μs | +7.2% |
| sum/compiled-from-Haskell/sum-left-Scott/100 | 60.72 μs | 65.94 μs | +8.6% |
| sum/compiled-from-Haskell/sum-left-Scott/500 | 321.5 μs | 345.9 μs | +7.6% |
| sum/compiled-from-Haskell/sum-left-Scott/1000 | 703.7 μs | 750.6 μs | +6.7% |
| sum/compiled-from-Haskell/sum-left-Scott/5000 | 5.742 ms | 5.962 ms | +3.8% |
| sum/compiled-from-Haskell/sum-left-Scott/10000 | 13.08 ms | 13.52 ms | +3.4% |
| sum/compiled-from-Haskell/sum-left-data/10 | 21.23 μs | 21.92 μs | +3.3% |
| sum/compiled-from-Haskell/sum-left-data/50 | 100.8 μs | 105.0 μs | +4.2% |
| sum/compiled-from-Haskell/sum-left-data/100 | 201.4 μs | 210.4 μs | +4.5% |
| sum/compiled-from-Haskell/sum-left-data/500 | 1.142 ms | 1.180 ms | +3.3% |
| sum/compiled-from-Haskell/sum-left-data/1000 | 2.634 ms | 2.714 ms | +3.0% |
| sum/compiled-from-Haskell/sum-left-data/5000 | 15.12 ms | 15.51 ms | +2.6% |
| sum/compiled-from-Haskell/sum-left-data/10000 | 31.54 ms | 32.47 ms | +2.9% |
| sum/hand-written-PLC/sum-right-builtin/10 | 8.371 μs | 6.729 μs | -19.6% |
| sum/hand-written-PLC/sum-right-builtin/50 | 37.28 μs | 29.67 μs | -20.4% |
| sum/hand-written-PLC/sum-right-builtin/100 | 73.90 μs | 59.18 μs | -19.9% |
| sum/hand-written-PLC/sum-right-builtin/500 | 375.1 μs | 295.0 μs | -21.4% |
| sum/hand-written-PLC/sum-right-builtin/1000 | 784.0 μs | 606.3 μs | -22.7% |
| sum/hand-written-PLC/sum-right-builtin/5000 | 4.647 ms | 3.809 ms | -18.0% |
| sum/hand-written-PLC/sum-right-builtin/10000 | 9.586 ms | 7.865 ms | -18.0% |
| sum/hand-written-PLC/sum-right-Scott/10 | 5.553 μs | 5.790 μs | +4.3% |
| sum/hand-written-PLC/sum-right-Scott/50 | 24.70 μs | 25.18 μs | +1.9% |
| sum/hand-written-PLC/sum-right-Scott/100 | 47.57 μs | 48.69 μs | +2.4% |
| sum/hand-written-PLC/sum-right-Scott/500 | 244.9 μs | 252.1 μs | +2.9% |
| sum/hand-written-PLC/sum-right-Scott/1000 | 509.8 μs | 525.4 μs | +3.1% |
| sum/hand-written-PLC/sum-right-Scott/5000 | 3.618 ms | 3.723 ms | +2.9% |
| sum/hand-written-PLC/sum-right-Scott/10000 | 8.046 ms | 8.258 ms | +2.6% |
| sum/hand-written-PLC/sum-left-builtin/10 | 8.609 μs | 7.548 μs | -12.3% |
| sum/hand-written-PLC/sum-left-builtin/50 | 39.49 μs | 33.64 μs | -14.8% |
| sum/hand-written-PLC/sum-left-builtin/100 | 78.32 μs | 67.94 μs | -13.3% |
| sum/hand-written-PLC/sum-left-builtin/500 | 379.3 μs | 335.4 μs | -11.6% |
| sum/hand-written-PLC/sum-left-builtin/1000 | 747.6 μs | 666.6 μs | -10.8% |
| sum/hand-written-PLC/sum-left-builtin/5000 | 3.682 ms | 3.303 ms | -10.3% |
| sum/hand-written-PLC/sum-left-builtin/10000 | 7.380 ms | 6.556 ms | -11.2% |
| sum/hand-written-PLC/sum-left-Scott/10 | 5.724 μs | 6.326 μs | +10.5% |
| sum/hand-written-PLC/sum-left-Scott/50 | 26.03 μs | 28.07 μs | +7.8% |
| sum/hand-written-PLC/sum-left-Scott/100 | 50.89 μs | 56.20 μs | +10.4% |
| sum/hand-written-PLC/sum-left-Scott/500 | 260.7 μs | 279.8 μs | +7.3% |
| sum/hand-written-PLC/sum-left-Scott/1000 | 530.4 μs | 569.7 μs | +7.4% |
| sum/hand-written-PLC/sum-left-Scott/5000 | 3.249 ms | 3.449 ms | +6.2% |
| sum/hand-written-PLC/sum-left-Scott/10000 | 6.725 ms | 7.142 ms | +6.2% |
/benchmark plutus-benchmark:lists
Click here to check the status of your benchmark.
Comparing benchmark results of 'plutus-benchmark:lists' on 'b8a74e7b4' (base) and 'a8183017d' (PR)
Results table
| Script | b8a74e7 | a818301 | Change |
|---|---|---|---|
| sort/ghcSort/10 | 36.81 μs | 37.07 μs | +0.7% |
| sort/ghcSort/20 | 85.99 μs | 86.74 μs | +0.9% |
| sort/ghcSort/30 | 131.6 μs | 132.9 μs | +1.0% |
| sort/ghcSort/40 | 194.5 μs | 197.4 μs | +1.5% |
| sort/ghcSort/50 | 235.1 μs | 237.6 μs | +1.1% |
| sort/ghcSort/60 | 300.4 μs | 304.8 μs | +1.5% |
| sort/ghcSort/70 | 390.6 μs | 396.7 μs | +1.6% |
| sort/ghcSort/80 | 442.8 μs | 448.1 μs | +1.2% |
| sort/ghcSort/90 | 490.2 μs | 495.1 μs | +1.0% |
| sort/ghcSort/100 | 548.1 μs | 557.3 μs | +1.7% |
| sort/ghcSort/110 | 607.1 μs | 613.5 μs | +1.1% |
| sort/ghcSort/120 | 686.0 μs | 695.5 μs | +1.4% |
| sort/ghcSort/130 | 848.3 μs | 855.1 μs | +0.8% |
| sort/ghcSort/140 | 900.1 μs | 910.5 μs | +1.2% |
| sort/ghcSort/150 | 980.6 μs | 970.4 μs | -1.0% |
| sort/ghcSort/160 | 1.021 ms | 1.034 ms | +1.3% |
| sort/ghcSort/170 | 1.081 ms | 1.096 ms | +1.4% |
| sort/ghcSort/180 | 1.143 ms | 1.151 ms | +0.7% |
| sort/ghcSort/190 | 1.206 ms | 1.222 ms | +1.3% |
| sort/ghcSort/200 | 1.302 ms | 1.313 ms | +0.8% |
| sort/ghcSort/210 | 1.351 ms | 1.368 ms | +1.3% |
| sort/ghcSort/220 | 1.414 ms | 1.432 ms | +1.3% |
| sort/ghcSort/230 | 1.513 ms | 1.535 ms | +1.5% |
| sort/ghcSort/240 | 1.609 ms | 1.625 ms | +1.0% |
| sort/ghcSort/250 | 1.686 ms | 1.706 ms | +1.2% |
| sort/ghcSort/260 | 1.935 ms | 1.955 ms | +1.0% |
| sort/ghcSort/270 | 1.993 ms | 2.014 ms | +1.1% |
| sort/ghcSort/280 | 2.062 ms | 2.084 ms | +1.1% |
| sort/ghcSort/290 | 2.131 ms | 2.145 ms | +0.7% |
| sort/ghcSort/300 | 2.198 ms | 2.219 ms | +1.0% |
| sort/ghcSort/310 | 2.271 ms | 2.306 ms | +1.5% |
| sort/ghcSort/320 | 2.355 ms | 2.376 ms | +0.9% |
| sort/ghcSort/330 | 2.418 ms | 2.434 ms | +0.7% |
| sort/ghcSort/340 | 2.509 ms | 2.536 ms | +1.1% |
| sort/ghcSort/350 | 2.553 ms | 2.567 ms | +0.5% |
| sort/ghcSort/360 | 2.614 ms | 2.647 ms | +1.3% |
| sort/ghcSort/370 | 2.684 ms | 2.719 ms | +1.3% |
| sort/ghcSort/380 | 2.783 ms | 2.810 ms | +1.0% |
| sort/ghcSort/390 | 2.909 ms | 2.925 ms | +0.6% |
| sort/ghcSort/400 | 2.973 ms | 3.009 ms | +1.2% |
| sort/ghcSort/410 | 2.996 ms | 3.039 ms | +1.4% |
| sort/ghcSort/420 | 3.106 ms | 3.159 ms | +1.7% |
| sort/ghcSort/430 | 3.161 ms | 3.209 ms | +1.5% |
| sort/ghcSort/440 | 3.272 ms | 3.297 ms | +0.8% |
| sort/ghcSort/450 | 3.432 ms | 3.484 ms | +1.5% |
| sort/ghcSort/460 | 3.476 ms | 3.532 ms | +1.6% |
| sort/ghcSort/470 | 3.567 ms | 3.615 ms | +1.3% |
| sort/ghcSort/480 | 3.701 ms | 3.737 ms | +1.0% |
| sort/ghcSort/490 | 3.756 ms | 3.819 ms | +1.7% |
| sort/ghcSort/500 | 3.868 ms | 3.915 ms | +1.2% |
| sort/insertionSort/10 | 34.19 μs | 34.82 μs | +1.8% |
| sort/insertionSort/20 | 123.4 μs | 124.2 μs | +0.6% |
| sort/insertionSort/30 | 266.9 μs | 269.2 μs | +0.9% |
| sort/insertionSort/40 | 465.8 μs | 472.1 μs | +1.4% |
| sort/insertionSort/50 | 725.0 μs | 727.4 μs | +0.3% |
| sort/insertionSort/60 | 1.039 ms | 1.051 ms | +1.2% |
| sort/insertionSort/70 | 1.467 ms | 1.420 ms | -3.2% |
| sort/insertionSort/80 | 1.840 ms | 1.850 ms | +0.5% |
| sort/insertionSort/90 | 2.333 ms | 2.331 ms | -0.1% |
| sort/insertionSort/100 | 2.874 ms | 2.897 ms | +0.8% |
| sort/insertionSort/110 | 3.469 ms | 3.496 ms | +0.8% |
| sort/insertionSort/120 | 4.132 ms | 4.165 ms | +0.8% |
| sort/insertionSort/130 | 4.843 ms | 4.848 ms | +0.1% |
| sort/insertionSort/140 | 5.627 ms | 5.631 ms | +0.1% |
| sort/insertionSort/150 | 6.464 ms | 6.502 ms | +0.6% |
| sort/insertionSort/160 | 7.334 ms | 7.344 ms | +0.1% |
| sort/insertionSort/170 | 8.513 ms | 8.332 ms | -2.1% |
| sort/insertionSort/180 | 9.294 ms | 9.346 ms | +0.6% |
| sort/insertionSort/190 | 10.37 ms | 10.38 ms | +0.1% |
| sort/insertionSort/200 | 11.47 ms | 11.62 ms | +1.3% |
| sort/insertionSort/210 | 12.69 ms | 12.65 ms | -0.3% |
| sort/insertionSort/220 | 13.86 ms | 13.93 ms | +0.5% |
| sort/insertionSort/230 | 15.17 ms | 15.26 ms | +0.6% |
| sort/insertionSort/240 | 16.56 ms | 16.70 ms | +0.8% |
| sort/insertionSort/250 | 18.01 ms | 18.25 ms | +1.3% |
| sort/insertionSort/260 | 19.45 ms | 19.67 ms | +1.1% |
| sort/insertionSort/270 | 21.82 ms | 21.20 ms | -2.8% |
| sort/insertionSort/280 | 22.50 ms | 22.75 ms | +1.1% |
| sort/insertionSort/290 | 24.36 ms | 24.53 ms | +0.7% |
| sort/insertionSort/300 | 26.10 ms | 26.34 ms | +0.9% |
| sort/insertionSort/310 | 27.80 ms | 28.06 ms | +0.9% |
| sort/insertionSort/320 | 29.62 ms | 29.89 ms | +0.9% |
| sort/insertionSort/330 | 31.40 ms | 31.65 ms | +0.8% |
| sort/insertionSort/340 | 33.57 ms | 33.53 ms | -0.1% |
| sort/insertionSort/350 | 35.49 ms | 35.64 ms | +0.4% |
| sort/insertionSort/360 | 37.51 ms | 38.11 ms | +1.6% |
| sort/insertionSort/370 | 39.68 ms | 39.99 ms | +0.8% |
| sort/insertionSort/380 | 41.68 ms | 42.18 ms | +1.2% |
| sort/insertionSort/390 | 44.29 ms | 44.42 ms | +0.3% |
| sort/insertionSort/400 | 46.70 ms | 46.68 ms | -0.0% |
| sort/insertionSort/410 | 49.15 ms | 49.16 ms | +0.0% |
| sort/insertionSort/420 | 51.60 ms | 51.60 ms | 0.0% |
| sort/insertionSort/430 | 54.25 ms | 54.50 ms | +0.5% |
| sort/insertionSort/440 | 56.63 ms | 56.68 ms | +0.1% |
| sort/insertionSort/450 | 59.39 ms | 59.97 ms | +1.0% |
| sort/insertionSort/460 | 61.96 ms | 62.84 ms | +1.4% |
| sort/insertionSort/470 | 65.13 ms | 65.38 ms | +0.4% |
| sort/insertionSort/480 | 67.34 ms | 68.03 ms | +1.0% |
| sort/insertionSort/490 | 70.31 ms | 71.16 ms | +1.2% |
| sort/insertionSort/500 | 73.59 ms | 74.08 ms | +0.7% |
| sort/mergeSort/10 | 87.75 μs | 89.04 μs | +1.5% |
| sort/mergeSort/20 | 212.9 μs | 218.5 μs | +2.6% |
| sort/mergeSort/30 | 350.2 μs | 359.2 μs | +2.6% |
| sort/mergeSort/40 | 498.3 μs | 507.6 μs | +1.9% |
| sort/mergeSort/50 | 649.0 μs | 664.4 μs | +2.4% |
| sort/mergeSort/60 | 818.4 μs | 832.2 μs | +1.7% |
| sort/mergeSort/70 | 981.5 μs | 1.004 ms | +2.3% |
| sort/mergeSort/80 | 1.155 ms | 1.175 ms | +1.7% |
| sort/mergeSort/90 | 1.330 ms | 1.352 ms | +1.7% |
| sort/mergeSort/100 | 1.501 ms | 1.532 ms | +2.1% |
| sort/mergeSort/110 | 1.678 ms | 1.713 ms | +2.1% |
| sort/mergeSort/120 | 1.868 ms | 1.900 ms | +1.7% |
| sort/mergeSort/130 | 2.079 ms | 2.130 ms | +2.5% |
| sort/mergeSort/140 | 2.234 ms | 2.287 ms | +2.4% |
| sort/mergeSort/150 | 2.409 ms | 2.465 ms | +2.3% |
| sort/mergeSort/160 | 2.635 ms | 2.680 ms | +1.7% |
| sort/mergeSort/170 | 2.793 ms | 2.856 ms | +2.3% |
| sort/mergeSort/180 | 2.993 ms | 3.064 ms | +2.4% |
| sort/mergeSort/190 | 3.274 ms | 3.261 ms | -0.4% |
| sort/mergeSort/200 | 3.378 ms | 3.463 ms | +2.5% |
| sort/mergeSort/210 | 3.584 ms | 3.677 ms | +2.6% |
| sort/mergeSort/220 | 3.772 ms | 3.857 ms | +2.3% |
| sort/mergeSort/230 | 3.991 ms | 4.076 ms | +2.1% |
| sort/mergeSort/240 | 4.202 ms | 4.288 ms | +2.0% |
| sort/mergeSort/250 | 4.440 ms | 4.516 ms | +1.7% |
| sort/mergeSort/260 | 4.652 ms | 4.740 ms | +1.9% |
| sort/mergeSort/270 | 4.814 ms | 4.891 ms | +1.6% |
| sort/mergeSort/280 | 5.008 ms | 5.134 ms | +2.5% |
| sort/mergeSort/290 | 5.191 ms | 5.288 ms | +1.9% |
| sort/mergeSort/300 | 5.401 ms | 5.495 ms | +1.7% |
| sort/mergeSort/310 | 5.600 ms | 5.722 ms | +2.2% |
| sort/mergeSort/320 | 5.840 ms | 5.965 ms | +2.1% |
| sort/mergeSort/330 | 6.025 ms | 6.153 ms | +2.1% |
| sort/mergeSort/340 | 6.231 ms | 6.371 ms | +2.2% |
| sort/mergeSort/350 | 6.472 ms | 6.617 ms | +2.2% |
| sort/mergeSort/360 | 6.680 ms | 6.852 ms | +2.6% |
| sort/mergeSort/370 | 6.909 ms | 7.071 ms | +2.3% |
| sort/mergeSort/380 | 7.322 ms | 7.279 ms | -0.6% |
| sort/mergeSort/390 | 7.348 ms | 7.501 ms | +2.1% |
| sort/mergeSort/400 | 7.696 ms | 7.690 ms | -0.1% |
| sort/mergeSort/410 | 7.768 ms | 7.947 ms | +2.3% |
| sort/mergeSort/420 | 8.010 ms | 8.185 ms | +2.2% |
| sort/mergeSort/430 | 8.237 ms | 8.397 ms | +1.9% |
| sort/mergeSort/440 | 8.395 ms | 8.569 ms | +2.1% |
| sort/mergeSort/450 | 8.627 ms | 8.814 ms | +2.2% |
| sort/mergeSort/460 | 9.147 ms | 9.048 ms | -1.1% |
| sort/mergeSort/470 | 9.111 ms | 9.312 ms | +2.2% |
| sort/mergeSort/480 | 9.305 ms | 9.521 ms | +2.3% |
| sort/mergeSort/490 | 9.554 ms | 9.784 ms | +2.4% |
| sort/mergeSort/500 | 9.849 ms | 10.03 ms | +1.8% |
| sort/quickSort/10 | 80.26 μs | 81.27 μs | +1.3% |
| sort/quickSort/20 | 294.7 μs | 299.7 μs | +1.7% |
| sort/quickSort/30 | 645.7 μs | 656.3 μs | +1.6% |
| sort/quickSort/40 | 1.158 ms | 1.174 ms | +1.4% |
| sort/quickSort/50 | 1.817 ms | 1.835 ms | +1.0% |
| sort/quickSort/60 | 2.623 ms | 2.656 ms | +1.3% |
| sort/quickSort/70 | 3.580 ms | 3.613 ms | +0.9% |
| sort/quickSort/80 | 4.677 ms | 4.761 ms | +1.8% |
| sort/quickSort/90 | 5.944 ms | 6.045 ms | +1.7% |
| sort/quickSort/100 | 7.246 ms | 7.386 ms | +1.9% |
| sort/quickSort/110 | 8.835 ms | 8.966 ms | +1.5% |
| sort/quickSort/120 | 10.47 ms | 10.63 ms | +1.5% |
| sort/quickSort/130 | 12.32 ms | 12.46 ms | +1.1% |
| sort/quickSort/140 | 14.12 ms | 14.34 ms | +1.6% |
| sort/quickSort/150 | 16.28 ms | 16.53 ms | +1.5% |
| sort/quickSort/160 | 18.46 ms | 18.69 ms | +1.2% |
| sort/quickSort/170 | 20.82 ms | 21.20 ms | +1.8% |
| sort/quickSort/180 | 23.35 ms | 23.74 ms | +1.7% |
| sort/quickSort/190 | 26.11 ms | 26.50 ms | +1.5% |
| sort/quickSort/200 | 28.78 ms | 29.09 ms | +1.1% |
| sort/quickSort/210 | 31.64 ms | 32.20 ms | +1.8% |
| sort/quickSort/220 | 34.83 ms | 35.49 ms | +1.9% |
| sort/quickSort/230 | 38.08 ms | 38.78 ms | +1.8% |
| sort/quickSort/240 | 41.49 ms | 42.20 ms | +1.7% |
| sort/quickSort/250 | 44.84 ms | 45.85 ms | +2.3% |
| sort/quickSort/260 | 48.43 ms | 49.49 ms | +2.2% |
| sort/quickSort/270 | 52.45 ms | 53.34 ms | +1.7% |
| sort/quickSort/280 | 56.40 ms | 57.45 ms | +1.9% |
| sort/quickSort/290 | 60.27 ms | 61.46 ms | +2.0% |
| sort/quickSort/300 | 64.63 ms | 65.78 ms | +1.8% |
| sort/quickSort/310 | 69.18 ms | 70.43 ms | +1.8% |
| sort/quickSort/320 | 73.75 ms | 75.00 ms | +1.7% |
| sort/quickSort/330 | 78.30 ms | 79.97 ms | +2.1% |
| sort/quickSort/340 | 83.74 ms | 85.19 ms | +1.7% |
| sort/quickSort/350 | 88.51 ms | 89.97 ms | +1.6% |
| sort/quickSort/360 | 93.50 ms | 95.40 ms | +2.0% |
| sort/quickSort/370 | 98.80 ms | 100.6 ms | +1.8% |
| sort/quickSort/380 | 104.3 ms | 106.3 ms | +1.9% |
| sort/quickSort/390 | 110.0 ms | 112.6 ms | +2.4% |
| sort/quickSort/400 | 115.9 ms | 117.8 ms | +1.6% |
| sort/quickSort/410 | 121.5 ms | 123.7 ms | +1.8% |
| sort/quickSort/420 | 128.1 ms | 130.5 ms | +1.9% |
| sort/quickSort/430 | 134.8 ms | 136.6 ms | +1.3% |
| sort/quickSort/440 | 140.7 ms | 143.2 ms | +1.8% |
| sort/quickSort/450 | 147.6 ms | 150.5 ms | +2.0% |
| sort/quickSort/460 | 154.2 ms | 157.3 ms | +2.0% |
| sort/quickSort/470 | 161.0 ms | 163.9 ms | +1.8% |
| sort/quickSort/480 | 169.2 ms | 171.8 ms | +1.5% |
| sort/quickSort/490 | 175.5 ms | 179.2 ms | +2.1% |
| sort/quickSort/500 | 182.6 ms | 186.3 ms | +2.0% |
| sum/compiled-from-Haskell/sum-right-builtin/10 | 8.408 μs | 6.902 μs | -17.9% |
| sum/compiled-from-Haskell/sum-right-builtin/50 | 39.07 μs | 30.94 μs | -20.8% |
| sum/compiled-from-Haskell/sum-right-builtin/100 | 78.97 μs | 63.23 μs | -19.9% |
| sum/compiled-from-Haskell/sum-right-builtin/500 | 430.8 μs | 335.8 μs | -22.1% |
| sum/compiled-from-Haskell/sum-right-builtin/1000 | 953.4 μs | 727.0 μs | -23.7% |
| sum/compiled-from-Haskell/sum-right-builtin/5000 | 6.706 ms | 5.470 ms | -18.4% |
| sum/compiled-from-Haskell/sum-right-builtin/10000 | 14.93 ms | 12.09 ms | -19.0% |
| sum/compiled-from-Haskell/sum-right-Scott/10 | 6.806 μs | 7.090 μs | +4.2% |
| sum/compiled-from-Haskell/sum-right-Scott/50 | 31.08 μs | 32.72 μs | +5.3% |
| sum/compiled-from-Haskell/sum-right-Scott/100 | 62.38 μs | 64.87 μs | +4.0% |
| sum/compiled-from-Haskell/sum-right-Scott/500 | 335.1 μs | 346.9 μs | +3.5% |
| sum/compiled-from-Haskell/sum-right-Scott/1000 | 738.5 μs | 761.2 μs | +3.1% |
| sum/compiled-from-Haskell/sum-right-Scott/5000 | 5.686 ms | 5.803 ms | +2.1% |
| sum/compiled-from-Haskell/sum-right-Scott/10000 | 14.09 ms | 14.30 ms | +1.5% |
| sum/compiled-from-Haskell/sum-right-data/10 | 20.26 μs | 20.94 μs | +3.4% |
| sum/compiled-from-Haskell/sum-right-data/50 | 97.55 μs | 100.3 μs | +2.8% |
| sum/compiled-from-Haskell/sum-right-data/100 | 194.4 μs | 200.6 μs | +3.2% |
| sum/compiled-from-Haskell/sum-right-data/500 | 1.108 ms | 1.133 ms | +2.3% |
| sum/compiled-from-Haskell/sum-right-data/1000 | 2.583 ms | 2.627 ms | +1.7% |
| sum/compiled-from-Haskell/sum-right-data/5000 | 15.03 ms | 15.29 ms | +1.7% |
| sum/compiled-from-Haskell/sum-right-data/10000 | 31.51 ms | 32.02 ms | +1.6% |
| sum/compiled-from-Haskell/sum-left-builtin/10 | 8.087 μs | 6.800 μs | -15.9% |
| sum/compiled-from-Haskell/sum-left-builtin/50 | 38.17 μs | 30.32 μs | -20.6% |
| sum/compiled-from-Haskell/sum-left-builtin/100 | 76.63 μs | 61.03 μs | -20.4% |
| sum/compiled-from-Haskell/sum-left-builtin/500 | 410.8 μs | 325.3 μs | -20.8% |
| sum/compiled-from-Haskell/sum-left-builtin/1000 | 939.8 μs | 698.2 μs | -25.7% |
| sum/compiled-from-Haskell/sum-left-builtin/5000 | 6.555 ms | 5.196 ms | -20.7% |
| sum/compiled-from-Haskell/sum-left-builtin/10000 | 14.34 ms | 11.98 ms | -16.5% |
| sum/compiled-from-Haskell/sum-left-Scott/10 | 6.501 μs | 6.794 μs | +4.5% |
| sum/compiled-from-Haskell/sum-left-Scott/50 | 30.28 μs | 31.48 μs | +4.0% |
| sum/compiled-from-Haskell/sum-left-Scott/100 | 60.98 μs | 63.99 μs | +4.9% |
| sum/compiled-from-Haskell/sum-left-Scott/500 | 321.0 μs | 338.5 μs | +5.5% |
| sum/compiled-from-Haskell/sum-left-Scott/1000 | 704.0 μs | 735.0 μs | +4.4% |
| sum/compiled-from-Haskell/sum-left-Scott/5000 | 5.784 ms | 5.906 ms | +2.1% |
| sum/compiled-from-Haskell/sum-left-Scott/10000 | 13.07 ms | 13.33 ms | +2.0% |
| sum/compiled-from-Haskell/sum-left-data/10 | 21.21 μs | 21.49 μs | +1.3% |
| sum/compiled-from-Haskell/sum-left-data/50 | 101.3 μs | 103.5 μs | +2.2% |
| sum/compiled-from-Haskell/sum-left-data/100 | 202.0 μs | 207.1 μs | +2.5% |
| sum/compiled-from-Haskell/sum-left-data/500 | 1.138 ms | 1.160 ms | +1.9% |
| sum/compiled-from-Haskell/sum-left-data/1000 | 2.622 ms | 2.684 ms | +2.4% |
| sum/compiled-from-Haskell/sum-left-data/5000 | 15.15 ms | 15.40 ms | +1.7% |
| sum/compiled-from-Haskell/sum-left-data/10000 | 31.55 ms | 31.98 ms | +1.4% |
| sum/hand-written-PLC/sum-right-builtin/10 | 8.369 μs | 6.731 μs | -19.6% |
| sum/hand-written-PLC/sum-right-builtin/50 | 37.27 μs | 29.67 μs | -20.4% |
| sum/hand-written-PLC/sum-right-builtin/100 | 74.17 μs | 59.65 μs | -19.6% |
| sum/hand-written-PLC/sum-right-builtin/500 | 377.5 μs | 299.2 μs | -20.7% |
| sum/hand-written-PLC/sum-right-builtin/1000 | 782.4 μs | 616.1 μs | -21.3% |
| sum/hand-written-PLC/sum-right-builtin/5000 | 4.648 ms | 3.798 ms | -18.3% |
| sum/hand-written-PLC/sum-right-builtin/10000 | 9.614 ms | 7.805 ms | -18.8% |
| sum/hand-written-PLC/sum-right-Scott/10 | 5.554 μs | 5.688 μs | +2.4% |
| sum/hand-written-PLC/sum-right-Scott/50 | 24.64 μs | 25.03 μs | +1.6% |
| sum/hand-written-PLC/sum-right-Scott/100 | 47.47 μs | 49.16 μs | +3.6% |
| sum/hand-written-PLC/sum-right-Scott/500 | 245.6 μs | 252.2 μs | +2.7% |
| sum/hand-written-PLC/sum-right-Scott/1000 | 511.1 μs | 524.8 μs | +2.7% |
| sum/hand-written-PLC/sum-right-Scott/5000 | 3.619 ms | 3.702 ms | +2.3% |
| sum/hand-written-PLC/sum-right-Scott/10000 | 8.063 ms | 8.228 ms | +2.0% |
| sum/hand-written-PLC/sum-left-builtin/10 | 8.588 μs | 7.304 μs | -15.0% |
| sum/hand-written-PLC/sum-left-builtin/50 | 39.65 μs | 33.00 μs | -16.8% |
| sum/hand-written-PLC/sum-left-builtin/100 | 78.33 μs | 65.31 μs | -16.6% |
| sum/hand-written-PLC/sum-left-builtin/500 | 378.5 μs | 322.7 μs | -14.7% |
| sum/hand-written-PLC/sum-left-builtin/1000 | 746.8 μs | 643.2 μs | -13.9% |
| sum/hand-written-PLC/sum-left-builtin/5000 | 3.682 ms | 3.175 ms | -13.8% |
| sum/hand-written-PLC/sum-left-builtin/10000 | 7.329 ms | 6.345 ms | -13.4% |
| sum/hand-written-PLC/sum-left-Scott/10 | 5.655 μs | 5.783 μs | +2.3% |
| sum/hand-written-PLC/sum-left-Scott/50 | 26.06 μs | 26.21 μs | +0.6% |
| sum/hand-written-PLC/sum-left-Scott/100 | 50.61 μs | 51.95 μs | +2.6% |
| sum/hand-written-PLC/sum-left-Scott/500 | 259.9 μs | 268.3 μs | +3.2% |
| sum/hand-written-PLC/sum-left-Scott/1000 | 528.2 μs | 541.9 μs | +2.6% |
| sum/hand-written-PLC/sum-left-Scott/5000 | 3.238 ms | 3.330 ms | +2.8% |
| sum/hand-written-PLC/sum-left-Scott/10000 | 6.701 ms | 6.910 ms | +3.1% |
/benchmark plutus-benchmark:lists
Click here to check the status of your benchmark.
Comparing benchmark results of 'plutus-benchmark:lists' on 'b8a74e7b4' (base) and 'a8183017d' (PR)
Results table
| Script | b8a74e7 | a818301 | Change |
|---|---|---|---|
| sort/ghcSort/10 | 36.38 μs | 37.28 μs | +2.5% |
| sort/ghcSort/20 | 84.82 μs | 86.25 μs | +1.7% |
| sort/ghcSort/30 | 129.8 μs | 132.1 μs | +1.8% |
| sort/ghcSort/40 | 192.1 μs | 196.6 μs | +2.3% |
| sort/ghcSort/50 | 233.3 μs | 237.1 μs | +1.6% |
| sort/ghcSort/60 | 296.4 μs | 303.8 μs | +2.5% |
| sort/ghcSort/70 | 385.8 μs | 393.7 μs | +2.0% |
| sort/ghcSort/80 | 438.2 μs | 448.5 μs | +2.4% |
| sort/ghcSort/90 | 482.1 μs | 493.3 μs | +2.3% |
| sort/ghcSort/100 | 545.6 μs | 558.3 μs | +2.3% |
| sort/ghcSort/110 | 598.8 μs | 612.0 μs | +2.2% |
| sort/ghcSort/120 | 680.2 μs | 695.2 μs | +2.2% |
| sort/ghcSort/130 | 833.9 μs | 856.0 μs | +2.7% |
| sort/ghcSort/140 | 887.4 μs | 906.3 μs | +2.1% |
| sort/ghcSort/150 | 946.9 μs | 966.9 μs | +2.1% |
| sort/ghcSort/160 | 1.012 ms | 1.030 ms | +1.8% |
| sort/ghcSort/170 | 1.066 ms | 1.088 ms | +2.1% |
| sort/ghcSort/180 | 1.125 ms | 1.152 ms | +2.4% |
| sort/ghcSort/190 | 1.196 ms | 1.216 ms | +1.7% |
| sort/ghcSort/200 | 1.281 ms | 1.305 ms | +1.9% |
| sort/ghcSort/210 | 1.335 ms | 1.360 ms | +1.9% |
| sort/ghcSort/220 | 1.401 ms | 1.427 ms | +1.9% |
| sort/ghcSort/230 | 1.498 ms | 1.530 ms | +2.1% |
| sort/ghcSort/240 | 1.591 ms | 1.616 ms | +1.6% |
| sort/ghcSort/250 | 1.668 ms | 1.702 ms | +2.0% |
| sort/ghcSort/260 | 1.914 ms | 1.957 ms | +2.2% |
| sort/ghcSort/270 | 1.960 ms | 2.010 ms | +2.6% |
| sort/ghcSort/280 | 2.032 ms | 2.081 ms | +2.4% |
| sort/ghcSort/290 | 2.103 ms | 2.141 ms | +1.8% |
| sort/ghcSort/300 | 2.172 ms | 2.224 ms | +2.4% |
| sort/ghcSort/310 | 2.250 ms | 2.292 ms | +1.9% |
| sort/ghcSort/320 | 2.325 ms | 2.367 ms | +1.8% |
| sort/ghcSort/330 | 2.385 ms | 2.433 ms | +2.0% |
| sort/ghcSort/340 | 2.479 ms | 2.533 ms | +2.2% |
| sort/ghcSort/350 | 2.574 ms | 2.572 ms | -0.1% |
| sort/ghcSort/360 | 2.585 ms | 2.636 ms | +2.0% |
| sort/ghcSort/370 | 2.648 ms | 2.708 ms | +2.3% |
| sort/ghcSort/380 | 2.738 ms | 2.805 ms | +2.4% |
| sort/ghcSort/390 | 2.878 ms | 2.933 ms | +1.9% |
| sort/ghcSort/400 | 2.934 ms | 3.013 ms | +2.7% |
| sort/ghcSort/410 | 2.980 ms | 3.036 ms | +1.9% |
| sort/ghcSort/420 | 3.089 ms | 3.150 ms | +2.0% |
| sort/ghcSort/430 | 3.126 ms | 3.200 ms | +2.4% |
| sort/ghcSort/440 | 3.225 ms | 3.297 ms | +2.2% |
| sort/ghcSort/450 | 3.405 ms | 3.471 ms | +1.9% |
| sort/ghcSort/460 | 3.519 ms | 3.514 ms | -0.1% |
| sort/ghcSort/470 | 3.523 ms | 3.601 ms | +2.2% |
| sort/ghcSort/480 | 3.646 ms | 3.728 ms | +2.2% |
| sort/ghcSort/490 | 3.711 ms | 3.809 ms | +2.6% |
| sort/ghcSort/500 | 3.839 ms | 3.909 ms | +1.8% |
| sort/insertionSort/10 | 33.89 μs | 34.55 μs | +1.9% |
| sort/insertionSort/20 | 121.8 μs | 123.2 μs | +1.1% |
| sort/insertionSort/30 | 264.4 μs | 267.9 μs | +1.3% |
| sort/insertionSort/40 | 461.8 μs | 472.8 μs | +2.4% |
| sort/insertionSort/50 | 715.5 μs | 732.7 μs | +2.4% |
| sort/insertionSort/60 | 1.032 ms | 1.052 ms | +1.9% |
| sort/insertionSort/70 | 1.400 ms | 1.428 ms | +2.0% |
| sort/insertionSort/80 | 1.823 ms | 1.859 ms | +2.0% |
| sort/insertionSort/90 | 2.304 ms | 2.355 ms | +2.2% |
| sort/insertionSort/100 | 2.839 ms | 2.889 ms | +1.8% |
| sort/insertionSort/110 | 3.434 ms | 3.499 ms | +1.9% |
| sort/insertionSort/120 | 4.128 ms | 4.164 ms | +0.9% |
| sort/insertionSort/130 | 4.777 ms | 4.875 ms | +2.1% |
| sort/insertionSort/140 | 5.554 ms | 5.632 ms | +1.4% |
| sort/insertionSort/150 | 6.384 ms | 6.492 ms | +1.7% |
| sort/insertionSort/160 | 7.258 ms | 7.412 ms | +2.1% |
| sort/insertionSort/170 | 8.513 ms | 8.338 ms | -2.1% |
| sort/insertionSort/180 | 9.167 ms | 9.358 ms | +2.1% |
| sort/insertionSort/190 | 10.26 ms | 10.43 ms | +1.7% |
| sort/insertionSort/200 | 11.40 ms | 11.55 ms | +1.3% |
| sort/insertionSort/210 | 12.52 ms | 12.77 ms | +2.0% |
| sort/insertionSort/220 | 13.78 ms | 13.97 ms | +1.4% |
| sort/insertionSort/230 | 15.05 ms | 15.32 ms | +1.8% |
| sort/insertionSort/240 | 16.39 ms | 16.66 ms | +1.6% |
| sort/insertionSort/250 | 17.86 ms | 18.08 ms | +1.2% |
| sort/insertionSort/260 | 19.28 ms | 19.60 ms | +1.7% |
| sort/insertionSort/270 | 20.81 ms | 21.12 ms | +1.5% |
| sort/insertionSort/280 | 22.37 ms | 22.73 ms | +1.6% |
| sort/insertionSort/290 | 23.99 ms | 24.45 ms | +1.9% |
| sort/insertionSort/300 | 25.70 ms | 26.27 ms | +2.2% |
| sort/insertionSort/310 | 28.49 ms | 28.05 ms | -1.5% |
| sort/insertionSort/320 | 29.64 ms | 29.86 ms | +0.7% |
| sort/insertionSort/330 | 31.21 ms | 31.81 ms | +1.9% |
| sort/insertionSort/340 | 33.25 ms | 33.74 ms | +1.5% |
| sort/insertionSort/350 | 35.13 ms | 35.70 ms | +1.6% |
| sort/insertionSort/360 | 37.37 ms | 37.91 ms | +1.4% |
| sort/insertionSort/370 | 39.14 ms | 40.09 ms | +2.4% |
| sort/insertionSort/380 | 41.37 ms | 42.35 ms | +2.4% |
| sort/insertionSort/390 | 43.36 ms | 44.63 ms | +2.9% |
| sort/insertionSort/400 | 46.27 ms | 47.00 ms | +1.6% |
| sort/insertionSort/410 | 48.45 ms | 49.26 ms | +1.7% |
| sort/insertionSort/420 | 50.84 ms | 52.04 ms | +2.4% |
| sort/insertionSort/430 | 54.59 ms | 54.39 ms | -0.4% |
| sort/insertionSort/440 | 56.17 ms | 57.15 ms | +1.7% |
| sort/insertionSort/450 | 59.19 ms | 59.65 ms | +0.8% |
| sort/insertionSort/460 | 61.41 ms | 62.41 ms | +1.6% |
| sort/insertionSort/470 | 64.17 ms | 64.86 ms | +1.1% |
| sort/insertionSort/480 | 66.95 ms | 68.01 ms | +1.6% |
| sort/insertionSort/490 | 69.81 ms | 70.82 ms | +1.4% |
| sort/insertionSort/500 | 73.04 ms | 73.71 ms | +0.9% |
| sort/mergeSort/10 | 86.85 μs | 90.09 μs | +3.7% |
| sort/mergeSort/20 | 211.9 μs | 220.3 μs | +4.0% |
| sort/mergeSort/30 | 348.3 μs | 363.4 μs | +4.3% |
| sort/mergeSort/40 | 492.1 μs | 513.6 μs | +4.4% |
| sort/mergeSort/50 | 642.9 μs | 668.3 μs | +4.0% |
| sort/mergeSort/60 | 808.7 μs | 840.9 μs | +4.0% |
| sort/mergeSort/70 | 973.2 μs | 1.008 ms | +3.6% |
| sort/mergeSort/80 | 1.174 ms | 1.185 ms | +0.9% |
| sort/mergeSort/90 | 1.353 ms | 1.366 ms | +1.0% |
| sort/mergeSort/100 | 1.485 ms | 1.546 ms | +4.1% |
| sort/mergeSort/110 | 1.662 ms | 1.729 ms | +4.0% |
| sort/mergeSort/120 | 1.843 ms | 1.927 ms | +4.6% |
| sort/mergeSort/130 | 2.060 ms | 2.139 ms | +3.8% |
| sort/mergeSort/140 | 2.216 ms | 2.307 ms | +4.1% |
| sort/mergeSort/150 | 2.384 ms | 2.488 ms | +4.4% |
| sort/mergeSort/160 | 2.591 ms | 2.702 ms | +4.3% |
| sort/mergeSort/170 | 2.768 ms | 2.877 ms | +3.9% |
| sort/mergeSort/180 | 2.964 ms | 3.091 ms | +4.3% |
| sort/mergeSort/190 | 3.197 ms | 3.299 ms | +3.2% |
| sort/mergeSort/200 | 3.421 ms | 3.472 ms | +1.5% |
| sort/mergeSort/210 | 3.547 ms | 3.706 ms | +4.5% |
| sort/mergeSort/220 | 3.836 ms | 3.892 ms | +1.5% |
| sort/mergeSort/230 | 4.011 ms | 4.109 ms | +2.4% |
| sort/mergeSort/240 | 4.156 ms | 4.326 ms | +4.1% |
| sort/mergeSort/250 | 4.387 ms | 4.559 ms | +3.9% |
| sort/mergeSort/260 | 4.598 ms | 4.789 ms | +4.2% |
| sort/mergeSort/270 | 4.749 ms | 4.964 ms | +4.5% |
| sort/mergeSort/280 | 4.951 ms | 5.179 ms | +4.6% |
| sort/mergeSort/290 | 5.131 ms | 5.349 ms | +4.2% |
| sort/mergeSort/300 | 5.330 ms | 5.559 ms | +4.3% |
| sort/mergeSort/310 | 5.544 ms | 5.777 ms | +4.2% |
| sort/mergeSort/320 | 5.786 ms | 6.023 ms | +4.1% |
| sort/mergeSort/330 | 5.970 ms | 6.218 ms | +4.2% |
| sort/mergeSort/340 | 6.170 ms | 6.442 ms | +4.4% |
| sort/mergeSort/350 | 6.452 ms | 6.675 ms | +3.5% |
| sort/mergeSort/360 | 6.586 ms | 6.833 ms | +3.8% |
| sort/mergeSort/370 | 6.824 ms | 7.090 ms | +3.9% |
| sort/mergeSort/380 | 7.024 ms | 7.302 ms | +4.0% |
| sort/mergeSort/390 | 7.481 ms | 7.560 ms | +1.1% |
| sort/mergeSort/400 | 7.435 ms | 7.720 ms | +3.8% |
| sort/mergeSort/410 | 7.693 ms | 7.987 ms | +3.8% |
| sort/mergeSort/420 | 7.896 ms | 8.233 ms | +4.3% |
| sort/mergeSort/430 | 8.129 ms | 8.487 ms | +4.4% |
| sort/mergeSort/440 | 8.299 ms | 8.641 ms | +4.1% |
| sort/mergeSort/450 | 8.535 ms | 8.893 ms | +4.2% |
| sort/mergeSort/460 | 8.786 ms | 9.135 ms | +4.0% |
| sort/mergeSort/470 | 9.025 ms | 9.375 ms | +3.9% |
| sort/mergeSort/480 | 9.234 ms | 9.617 ms | +4.1% |
| sort/mergeSort/490 | 9.460 ms | 9.882 ms | +4.5% |
| sort/mergeSort/500 | 9.739 ms | 10.13 ms | +4.0% |
| sort/quickSort/10 | 79.54 μs | 80.60 μs | +1.3% |
| sort/quickSort/20 | 291.9 μs | 297.3 μs | +1.8% |
| sort/quickSort/30 | 640.5 μs | 658.1 μs | +2.7% |
| sort/quickSort/40 | 1.149 ms | 1.172 ms | +2.0% |
| sort/quickSort/50 | 1.800 ms | 1.833 ms | +1.8% |
| sort/quickSort/60 | 2.603 ms | 2.653 ms | +1.9% |
| sort/quickSort/70 | 3.543 ms | 3.619 ms | +2.1% |
| sort/quickSort/80 | 4.646 ms | 4.746 ms | +2.2% |
| sort/quickSort/90 | 5.894 ms | 6.028 ms | +2.3% |
| sort/quickSort/100 | 7.189 ms | 7.350 ms | +2.2% |
| sort/quickSort/110 | 8.758 ms | 8.943 ms | +2.1% |
| sort/quickSort/120 | 10.39 ms | 10.62 ms | +2.2% |
| sort/quickSort/130 | 12.21 ms | 12.48 ms | +2.2% |
| sort/quickSort/140 | 14.01 ms | 14.31 ms | +2.1% |
| sort/quickSort/150 | 16.14 ms | 16.56 ms | +2.6% |
| sort/quickSort/160 | 18.30 ms | 18.70 ms | +2.2% |
| sort/quickSort/170 | 20.64 ms | 21.29 ms | +3.1% |
| sort/quickSort/180 | 23.23 ms | 23.72 ms | +2.1% |
| sort/quickSort/190 | 25.83 ms | 26.43 ms | +2.3% |
| sort/quickSort/200 | 28.53 ms | 29.17 ms | +2.2% |
| sort/quickSort/210 | 31.45 ms | 32.21 ms | +2.4% |
| sort/quickSort/220 | 34.52 ms | 35.40 ms | +2.5% |
| sort/quickSort/230 | 37.69 ms | 38.76 ms | +2.8% |
| sort/quickSort/240 | 41.06 ms | 42.03 ms | +2.4% |
| sort/quickSort/250 | 44.44 ms | 45.68 ms | +2.8% |
| sort/quickSort/260 | 48.16 ms | 49.31 ms | +2.4% |
| sort/quickSort/270 | 51.96 ms | 53.13 ms | +2.3% |
| sort/quickSort/280 | 55.90 ms | 57.30 ms | +2.5% |
| sort/quickSort/290 | 59.78 ms | 61.32 ms | +2.6% |
| sort/quickSort/300 | 64.06 ms | 65.64 ms | +2.5% |
| sort/quickSort/310 | 68.48 ms | 70.63 ms | +3.1% |
| sort/quickSort/320 | 73.15 ms | 75.16 ms | +2.7% |
| sort/quickSort/330 | 77.58 ms | 79.88 ms | +3.0% |
| sort/quickSort/340 | 82.90 ms | 85.33 ms | +2.9% |
| sort/quickSort/350 | 87.55 ms | 89.98 ms | +2.8% |
| sort/quickSort/360 | 92.70 ms | 95.34 ms | +2.8% |
| sort/quickSort/370 | 98.00 ms | 100.9 ms | +3.0% |
| sort/quickSort/380 | 103.4 ms | 106.2 ms | +2.7% |
| sort/quickSort/390 | 109.0 ms | 112.0 ms | +2.8% |
| sort/quickSort/400 | 115.0 ms | 117.8 ms | +2.4% |
| sort/quickSort/410 | 120.6 ms | 123.9 ms | +2.7% |
| sort/quickSort/420 | 127.0 ms | 130.6 ms | +2.8% |
| sort/quickSort/430 | 133.6 ms | 137.3 ms | +2.8% |
| sort/quickSort/440 | 139.8 ms | 143.5 ms | +2.6% |
| sort/quickSort/450 | 145.7 ms | 149.9 ms | +2.9% |
| sort/quickSort/460 | 152.9 ms | 157.4 ms | +2.9% |
| sort/quickSort/470 | 159.3 ms | 163.4 ms | +2.6% |
| sort/quickSort/480 | 167.0 ms | 172.0 ms | +3.0% |
| sort/quickSort/490 | 173.8 ms | 179.4 ms | +3.2% |
| sort/quickSort/500 | 181.4 ms | 185.9 ms | +2.5% |
| sum/compiled-from-Haskell/sum-right-builtin/10 | 8.346 μs | 6.921 μs | -17.1% |
| sum/compiled-from-Haskell/sum-right-builtin/50 | 39.07 μs | 31.05 μs | -20.5% |
| sum/compiled-from-Haskell/sum-right-builtin/100 | 78.52 μs | 63.30 μs | -19.4% |
| sum/compiled-from-Haskell/sum-right-builtin/500 | 428.3 μs | 335.6 μs | -21.6% |
| sum/compiled-from-Haskell/sum-right-builtin/1000 | 945.5 μs | 724.9 μs | -23.3% |
| sum/compiled-from-Haskell/sum-right-builtin/5000 | 6.679 ms | 5.439 ms | -18.6% |
| sum/compiled-from-Haskell/sum-right-builtin/10000 | 14.82 ms | 12.01 ms | -19.0% |
| sum/compiled-from-Haskell/sum-right-Scott/10 | 6.750 μs | 7.043 μs | +4.3% |
| sum/compiled-from-Haskell/sum-right-Scott/50 | 30.92 μs | 32.52 μs | +5.2% |
| sum/compiled-from-Haskell/sum-right-Scott/100 | 61.88 μs | 64.92 μs | +4.9% |
| sum/compiled-from-Haskell/sum-right-Scott/500 | 334.1 μs | 347.2 μs | +3.9% |
| sum/compiled-from-Haskell/sum-right-Scott/1000 | 733.0 μs | 762.3 μs | +4.0% |
| sum/compiled-from-Haskell/sum-right-Scott/5000 | 5.648 ms | 5.810 ms | +2.9% |
| sum/compiled-from-Haskell/sum-right-Scott/10000 | 13.90 ms | 14.27 ms | +2.7% |
| sum/compiled-from-Haskell/sum-right-data/10 | 20.41 μs | 21.06 μs | +3.2% |
| sum/compiled-from-Haskell/sum-right-data/50 | 98.22 μs | 100.4 μs | +2.2% |
| sum/compiled-from-Haskell/sum-right-data/100 | 196.7 μs | 200.4 μs | +1.9% |
| sum/compiled-from-Haskell/sum-right-data/500 | 1.115 ms | 1.134 ms | +1.7% |
| sum/compiled-from-Haskell/sum-right-data/1000 | 2.599 ms | 2.633 ms | +1.3% |
| sum/compiled-from-Haskell/sum-right-data/5000 | 15.04 ms | 15.23 ms | +1.3% |
| sum/compiled-from-Haskell/sum-right-data/10000 | 31.79 ms | 32.13 ms | +1.1% |
| sum/compiled-from-Haskell/sum-left-builtin/10 | 7.973 μs | 6.799 μs | -14.7% |
| sum/compiled-from-Haskell/sum-left-builtin/50 | 38.08 μs | 30.15 μs | -20.8% |
| sum/compiled-from-Haskell/sum-left-builtin/100 | 76.03 μs | 60.71 μs | -20.1% |
| sum/compiled-from-Haskell/sum-left-builtin/500 | 408.8 μs | 323.2 μs | -20.9% |
| sum/compiled-from-Haskell/sum-left-builtin/1000 | 912.4 μs | 699.5 μs | -23.3% |
| sum/compiled-from-Haskell/sum-left-builtin/5000 | 6.521 ms | 5.173 ms | -20.7% |
| sum/compiled-from-Haskell/sum-left-builtin/10000 | 14.25 ms | 11.95 ms | -16.1% |
| sum/compiled-from-Haskell/sum-left-Scott/10 | 6.445 μs | 6.822 μs | +5.8% |
| sum/compiled-from-Haskell/sum-left-Scott/50 | 30.03 μs | 31.37 μs | +4.5% |
| sum/compiled-from-Haskell/sum-left-Scott/100 | 60.46 μs | 63.86 μs | +5.6% |
| sum/compiled-from-Haskell/sum-left-Scott/500 | 320.1 μs | 335.4 μs | +4.8% |
| sum/compiled-from-Haskell/sum-left-Scott/1000 | 699.0 μs | 735.0 μs | +5.2% |
| sum/compiled-from-Haskell/sum-left-Scott/5000 | 5.750 ms | 5.891 ms | +2.5% |
| sum/compiled-from-Haskell/sum-left-Scott/10000 | 13.01 ms | 13.34 ms | +2.5% |
| sum/compiled-from-Haskell/sum-left-data/10 | 21.46 μs | 21.42 μs | -0.2% |
| sum/compiled-from-Haskell/sum-left-data/50 | 101.8 μs | 104.3 μs | +2.5% |
| sum/compiled-from-Haskell/sum-left-data/100 | 203.4 μs | 207.7 μs | +2.1% |
| sum/compiled-from-Haskell/sum-left-data/500 | 1.146 ms | 1.164 ms | +1.6% |
| sum/compiled-from-Haskell/sum-left-data/1000 | 2.651 ms | 2.681 ms | +1.1% |
| sum/compiled-from-Haskell/sum-left-data/5000 | 15.21 ms | 15.35 ms | +0.9% |
| sum/compiled-from-Haskell/sum-left-data/10000 | 31.69 ms | 32.06 ms | +1.2% |
| sum/hand-written-PLC/sum-right-builtin/10 | 8.349 μs | 6.786 μs | -18.7% |
| sum/hand-written-PLC/sum-right-builtin/50 | 37.06 μs | 29.77 μs | -19.7% |
| sum/hand-written-PLC/sum-right-builtin/100 | 73.77 μs | 60.21 μs | -18.4% |
| sum/hand-written-PLC/sum-right-builtin/500 | 374.7 μs | 301.1 μs | -19.6% |
| sum/hand-written-PLC/sum-right-builtin/1000 | 778.8 μs | 610.8 μs | -21.6% |
| sum/hand-written-PLC/sum-right-builtin/5000 | 4.626 ms | 3.810 ms | -17.6% |
| sum/hand-written-PLC/sum-right-builtin/10000 | 9.530 ms | 7.806 ms | -18.1% |
| sum/hand-written-PLC/sum-right-Scott/10 | 5.538 μs | 5.759 μs | +4.0% |
| sum/hand-written-PLC/sum-right-Scott/50 | 24.58 μs | 25.52 μs | +3.8% |
| sum/hand-written-PLC/sum-right-Scott/100 | 47.47 μs | 48.92 μs | +3.1% |
| sum/hand-written-PLC/sum-right-Scott/500 | 244.8 μs | 249.3 μs | +1.8% |
| sum/hand-written-PLC/sum-right-Scott/1000 | 510.0 μs | 514.9 μs | +1.0% |
| sum/hand-written-PLC/sum-right-Scott/5000 | 3.613 ms | 3.692 ms | +2.2% |
| sum/hand-written-PLC/sum-right-Scott/10000 | 8.038 ms | 8.244 ms | +2.6% |
| sum/hand-written-PLC/sum-left-builtin/10 | 8.601 μs | 7.319 μs | -14.9% |
| sum/hand-written-PLC/sum-left-builtin/50 | 39.24 μs | 32.57 μs | -17.0% |
| sum/hand-written-PLC/sum-left-builtin/100 | 77.29 μs | 65.64 μs | -15.1% |
| sum/hand-written-PLC/sum-left-builtin/500 | 376.4 μs | 319.5 μs | -15.1% |
| sum/hand-written-PLC/sum-left-builtin/1000 | 746.5 μs | 643.1 μs | -13.9% |
| sum/hand-written-PLC/sum-left-builtin/5000 | 3.680 ms | 3.184 ms | -13.5% |
| sum/hand-written-PLC/sum-left-builtin/10000 | 7.344 ms | 6.337 ms | -13.7% |
| sum/hand-written-PLC/sum-left-Scott/10 | 5.629 μs | 5.874 μs | +4.4% |
| sum/hand-written-PLC/sum-left-Scott/50 | 26.01 μs | 26.24 μs | +0.9% |
| sum/hand-written-PLC/sum-left-Scott/100 | 51.33 μs | 52.45 μs | +2.2% |
| sum/hand-written-PLC/sum-left-Scott/500 | 260.0 μs | 264.6 μs | +1.8% |
| sum/hand-written-PLC/sum-left-Scott/1000 | 528.7 μs | 545.1 μs | +3.1% |
| sum/hand-written-PLC/sum-left-Scott/5000 | 3.234 ms | 3.328 ms | +2.9% |
| sum/hand-written-PLC/sum-left-Scott/10000 | 6.714 ms | 6.907 ms | +2.9% |