Created
June 26, 2011 18:12
-
-
Save Shimuuar/1047816 to your computer and use it in GitHub Desktop.
Benchmark of dispatch by constructor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Criterion.Main | |
---------------------------------------------------------------- | |
-- Unit types | |
data U10 = | |
U10_01 | |
| U10_02 | |
| U10_03 | |
| U10_04 | |
| U10_05 | |
| U10_06 | |
| U10_07 | |
| U10_08 | |
| U10_09 | |
| U10_10 | |
data U30 = | |
U30_01 | |
| U30_02 | |
| U30_03 | |
| U30_04 | |
| U30_05 | |
| U30_06 | |
| U30_07 | |
| U30_08 | |
| U30_09 | |
| U30_10 | |
| U30_11 | |
| U30_12 | |
| U30_13 | |
| U30_14 | |
| U30_15 | |
| U30_16 | |
| U30_17 | |
| U30_18 | |
| U30_19 | |
| U30_20 | |
| U30_21 | |
| U30_22 | |
| U30_23 | |
| U30_24 | |
| U30_25 | |
| U30_26 | |
| U30_27 | |
| U30_28 | |
| U30_29 | |
| U30_30 | |
testU10 :: U10 -> () | |
testU10 U10_01 = () | |
testU10 U10_02 = () | |
testU10 U10_03 = () | |
testU10 U10_04 = () | |
testU10 U10_05 = () | |
testU10 U10_06 = () | |
testU10 U10_07 = () | |
testU10 U10_08 = () | |
testU10 U10_09 = () | |
testU10 U10_10 = () | |
testU30 :: U30 -> () | |
testU30 U30_01 = () | |
testU30 U30_02 = () | |
testU30 U30_03 = () | |
testU30 U30_04 = () | |
testU30 U30_05 = () | |
testU30 U30_06 = () | |
testU30 U30_07 = () | |
testU30 U30_08 = () | |
testU30 U30_09 = () | |
testU30 U30_10 = () | |
testU30 U30_11 = () | |
testU30 U30_12 = () | |
testU30 U30_13 = () | |
testU30 U30_14 = () | |
testU30 U30_15 = () | |
testU30 U30_16 = () | |
testU30 U30_17 = () | |
testU30 U30_18 = () | |
testU30 U30_19 = () | |
testU30 U30_20 = () | |
testU30 U30_21 = () | |
testU30 U30_22 = () | |
testU30 U30_23 = () | |
testU30 U30_24 = () | |
testU30 U30_25 = () | |
testU30 U30_26 = () | |
testU30 U30_27 = () | |
testU30 U30_28 = () | |
testU30 U30_29 = () | |
testU30 U30_30 = () | |
data I10 = | |
I10_01 Int | |
| I10_02 Int | |
| I10_03 Int | |
| I10_04 Int | |
| I10_05 Int | |
| I10_06 Int | |
| I10_07 Int | |
| I10_08 Int | |
| I10_09 Int | |
| I10_10 Int | |
data I30 = | |
I30_01 Int | |
| I30_02 Int | |
| I30_03 Int | |
| I30_04 Int | |
| I30_05 Int | |
| I30_06 Int | |
| I30_07 Int | |
| I30_08 Int | |
| I30_09 Int | |
| I30_10 Int | |
| I30_11 Int | |
| I30_12 Int | |
| I30_13 Int | |
| I30_14 Int | |
| I30_15 Int | |
| I30_16 Int | |
| I30_17 Int | |
| I30_18 Int | |
| I30_19 Int | |
| I30_20 Int | |
| I30_21 Int | |
| I30_22 Int | |
| I30_23 Int | |
| I30_24 Int | |
| I30_25 Int | |
| I30_26 Int | |
| I30_27 Int | |
| I30_28 Int | |
| I30_29 Int | |
| I30_30 Int | |
testI10 :: I10 -> Int | |
testI10 (I10_01 i) = i | |
testI10 (I10_02 i) = i | |
testI10 (I10_03 i) = i | |
testI10 (I10_04 i) = i | |
testI10 (I10_05 i) = i | |
testI10 (I10_06 i) = i | |
testI10 (I10_07 i) = i | |
testI10 (I10_08 i) = i | |
testI10 (I10_09 i) = i | |
testI10 (I10_10 i) = i | |
testI30 :: I30 -> Int | |
testI30 (I30_01 i) = i | |
testI30 (I30_02 i) = i | |
testI30 (I30_03 i) = i | |
testI30 (I30_04 i) = i | |
testI30 (I30_05 i) = i | |
testI30 (I30_06 i) = i | |
testI30 (I30_07 i) = i | |
testI30 (I30_08 i) = i | |
testI30 (I30_09 i) = i | |
testI30 (I30_10 i) = i | |
testI30 (I30_11 i) = i | |
testI30 (I30_12 i) = i | |
testI30 (I30_13 i) = i | |
testI30 (I30_14 i) = i | |
testI30 (I30_15 i) = i | |
testI30 (I30_16 i) = i | |
testI30 (I30_17 i) = i | |
testI30 (I30_18 i) = i | |
testI30 (I30_19 i) = i | |
testI30 (I30_20 i) = i | |
testI30 (I30_21 i) = i | |
testI30 (I30_22 i) = i | |
testI30 (I30_23 i) = i | |
testI30 (I30_24 i) = i | |
testI30 (I30_25 i) = i | |
testI30 (I30_26 i) = i | |
testI30 (I30_27 i) = i | |
testI30 (I30_28 i) = i | |
testI30 (I30_29 i) = i | |
testI30 (I30_30 i) = i | |
main :: IO () | |
main = defaultMain [ | |
bgroup "U10" [ bench "U10_01" $ nf testU10 U10_01 | |
, bench "U10_02" $ nf testU10 U10_02 | |
, bench "U10_03" $ nf testU10 U10_03 | |
, bench "U10_04" $ nf testU10 U10_04 | |
, bench "U10_05" $ nf testU10 U10_05 | |
, bench "U10_06" $ nf testU10 U10_06 | |
, bench "U10_07" $ nf testU10 U10_07 | |
, bench "U10_08" $ nf testU10 U10_08 | |
, bench "U10_09" $ nf testU10 U10_09 | |
, bench "U10_10" $ nf testU10 U10_10 | |
] | |
, bgroup "U30" [ bench "U30_01" $ nf testU30 U30_01 | |
, bench "U30_02" $ nf testU30 U30_02 | |
, bench "U30_03" $ nf testU30 U30_03 | |
, bench "U30_04" $ nf testU30 U30_04 | |
, bench "U30_05" $ nf testU30 U30_05 | |
, bench "U30_06" $ nf testU30 U30_06 | |
, bench "U30_07" $ nf testU30 U30_07 | |
, bench "U30_08" $ nf testU30 U30_08 | |
, bench "U30_09" $ nf testU30 U30_09 | |
, bench "U30_10" $ nf testU30 U30_10 | |
, bench "U30_11" $ nf testU30 U30_11 | |
, bench "U30_12" $ nf testU30 U30_12 | |
, bench "U30_13" $ nf testU30 U30_13 | |
, bench "U30_14" $ nf testU30 U30_14 | |
, bench "U30_15" $ nf testU30 U30_15 | |
, bench "U30_16" $ nf testU30 U30_16 | |
, bench "U30_17" $ nf testU30 U30_17 | |
, bench "U30_18" $ nf testU30 U30_18 | |
, bench "U30_19" $ nf testU30 U30_19 | |
, bench "U30_20" $ nf testU30 U30_20 | |
, bench "U30_21" $ nf testU30 U30_21 | |
, bench "U30_22" $ nf testU30 U30_22 | |
, bench "U30_23" $ nf testU30 U30_23 | |
, bench "U30_24" $ nf testU30 U30_24 | |
, bench "U30_25" $ nf testU30 U30_25 | |
, bench "U30_26" $ nf testU30 U30_26 | |
, bench "U30_27" $ nf testU30 U30_27 | |
, bench "U30_28" $ nf testU30 U30_28 | |
, bench "U30_29" $ nf testU30 U30_29 | |
, bench "U30_30" $ nf testU30 U30_30 | |
] | |
, bgroup "I10" [ bench "I10_01" $ nf testI10 (I10_01 123) | |
, bench "I10_02" $ nf testI10 (I10_02 123) | |
, bench "I10_03" $ nf testI10 (I10_03 123) | |
, bench "I10_04" $ nf testI10 (I10_04 123) | |
, bench "I10_05" $ nf testI10 (I10_05 123) | |
, bench "I10_06" $ nf testI10 (I10_06 123) | |
, bench "I10_07" $ nf testI10 (I10_07 123) | |
, bench "I10_08" $ nf testI10 (I10_08 123) | |
, bench "I10_09" $ nf testI10 (I10_09 123) | |
, bench "I10_10" $ nf testI10 (I10_10 123) | |
] | |
, bgroup "I30" [ bench "I30_01" $ nf testI30 (I30_01 123) | |
, bench "I30_02" $ nf testI30 (I30_02 123) | |
, bench "I30_03" $ nf testI30 (I30_03 123) | |
, bench "I30_04" $ nf testI30 (I30_04 123) | |
, bench "I30_05" $ nf testI30 (I30_05 123) | |
, bench "I30_06" $ nf testI30 (I30_06 123) | |
, bench "I30_07" $ nf testI30 (I30_07 123) | |
, bench "I30_08" $ nf testI30 (I30_08 123) | |
, bench "I30_09" $ nf testI30 (I30_09 123) | |
, bench "I30_10" $ nf testI30 (I30_10 123) | |
, bench "I30_11" $ nf testI30 (I30_11 123) | |
, bench "I30_12" $ nf testI30 (I30_12 123) | |
, bench "I30_13" $ nf testI30 (I30_13 123) | |
, bench "I30_14" $ nf testI30 (I30_14 123) | |
, bench "I30_15" $ nf testI30 (I30_15 123) | |
, bench "I30_16" $ nf testI30 (I30_16 123) | |
, bench "I30_17" $ nf testI30 (I30_17 123) | |
, bench "I30_18" $ nf testI30 (I30_18 123) | |
, bench "I30_19" $ nf testI30 (I30_19 123) | |
, bench "I30_20" $ nf testI30 (I30_20 123) | |
, bench "I30_21" $ nf testI30 (I30_21 123) | |
, bench "I30_22" $ nf testI30 (I30_22 123) | |
, bench "I30_23" $ nf testI30 (I30_23 123) | |
, bench "I30_24" $ nf testI30 (I30_24 123) | |
, bench "I30_25" $ nf testI30 (I30_25 123) | |
, bench "I30_26" $ nf testI30 (I30_26 123) | |
, bench "I30_27" $ nf testI30 (I30_27 123) | |
, bench "I30_28" $ nf testI30 (I30_28 123) | |
, bench "I30_29" $ nf testI30 (I30_29 123) | |
, bench "I30_30" $ nf testI30 (I30_30 123) | |
] | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment