plutus icon indicating copy to clipboard operation
plutus copied to clipboard

[Builtins] Add 'ListToConstr' and 'DataToConstr'

Open effectfully opened this issue 1 year ago • 11 comments

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.

effectfully avatar Jan 05 '24 23:01 effectfully

/benchmark plutus-benchmark:lists

effectfully avatar Jan 05 '24 23:01 effectfully

Click here to check the status of your benchmark.

github-actions[bot] avatar Jan 06 '24 00:01 github-actions[bot]

/benchmark plutus-benchmark:lists

effectfully avatar Jan 06 '24 03:01 effectfully

Click here to check the status of your benchmark.

github-actions[bot] avatar Jan 06 '24 03:01 github-actions[bot]

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%

github-actions[bot] avatar Jan 06 '24 06:01 github-actions[bot]

/benchmark plutus-benchmark:lists

effectfully avatar Jan 08 '24 18:01 effectfully

Click here to check the status of your benchmark.

github-actions[bot] avatar Jan 08 '24 18:01 github-actions[bot]

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%

github-actions[bot] avatar Jan 08 '24 20:01 github-actions[bot]

/benchmark plutus-benchmark:lists

effectfully avatar Jan 09 '24 03:01 effectfully

Click here to check the status of your benchmark.

github-actions[bot] avatar Jan 09 '24 03:01 github-actions[bot]

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%

github-actions[bot] avatar Jan 09 '24 06:01 github-actions[bot]