A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||
2 | Legend: | Accepted Optimization | Rejected | |||||||||||||||||||||||
3 | ||||||||||||||||||||||||||
4 | Creation | Baseline (us) | Seq | LLVM | ||||||||||||||||||||||
5 | constant 256x256 | 89 | 37 | 60 | ||||||||||||||||||||||
6 | constant 512x512 | 251 | 130 | 160 | ||||||||||||||||||||||
7 | fromFunction 256x256 | 516 | 1000 | 515 | ||||||||||||||||||||||
8 | fromFunction 512x512 | 2100 | 4300 | 2082 | ||||||||||||||||||||||
9 | fromVector Unboxed | 0.164 | 0.159 | 0.152 | ||||||||||||||||||||||
10 | fromVector Boxed | 91 | 101 | 52 | ||||||||||||||||||||||
11 | ||||||||||||||||||||||||||
12 | IO | Baseline (ms) | INLINE | With Mutation | Seq | LLVM | ||||||||||||||||||||
13 | fromRGBA | 17 | 10.3 | 10 | 10.9 | 9.2 | ||||||||||||||||||||
14 | fromRGBA (Word8 -> Double) | 84 | 55 | 50.5 | 50.9 | 52.4 | ||||||||||||||||||||
15 | fromGray Multiband | 150 | 124.1 | 118.2 | 53.6 | |||||||||||||||||||||
16 | fromGray Singleband | 2.4 | 2.4 | 2.2 | 2.2 | |||||||||||||||||||||
17 | ||||||||||||||||||||||||||
18 | Colouring | Baseline (ms) | Seq | LLVM | ||||||||||||||||||||||
19 | classify | 4.1 | 7 | 3.1 | ||||||||||||||||||||||
20 | grayscale | 1 | 0.26 | 0.111 | ||||||||||||||||||||||
21 | ||||||||||||||||||||||||||
22 | Local Operations | Baseline (ms) | Better fromRGBA | INLINE | Seq | Clever NonEmpty Handling | LLVM | |||||||||||||||||||
23 | fmap (+17) | 1 | 0.27 | 0.12 | ||||||||||||||||||||||
24 | zipWith (+) | 17.4 | 1.1 | 0.41 | 1.1 | |||||||||||||||||||||
25 | zipWith (/) | 2.2 | 1.8 | 2 | ||||||||||||||||||||||
26 | (+) | 17.1 | 2 | 1.8 | 1.9 | |||||||||||||||||||||
27 | (/) | 3.3 | 4 | 2.9 | ||||||||||||||||||||||
28 | lmax | 5.7 | 1.3 | 0.42 | 1.2 | |||||||||||||||||||||
29 | lmin | 5.4 | 1.1 | 0.5 | 1.1 | |||||||||||||||||||||
30 | lmean (Word8) | 47.2 | 22.4 | 15.4 | 24 | 13.8 | 13.2 | |||||||||||||||||||
31 | lmean (Double) | 3.9 | 3.6 | |||||||||||||||||||||||
32 | lvariety | 43.4 | 18 | 17.5 | 31 | 15.6 | ||||||||||||||||||||
33 | lmajority | 52 | 26 | 22.2 | 40 | 21.7 | 20.9 | |||||||||||||||||||
34 | lminority | 52 | 26 | 22.2 | 39 | 22 | 20.7 | |||||||||||||||||||
35 | lvariance (Word8) | 84.4 | 57.5 | 45 | 96.1 | 47.6 | ||||||||||||||||||||
36 | lvariance (Double) | 9.4 | 8.8 | |||||||||||||||||||||||
37 | ||||||||||||||||||||||||||
38 | Focal Operations | Baseline (ms) | INLINE | Seq | `Fractional` only | Avoid Lists | LLVM | |||||||||||||||||||
39 | fsum (512) | 35.7 | 1.2 | 1.7 | 1.2 | 0.37 | ||||||||||||||||||||
40 | fsum (46500) | 2414 | ||||||||||||||||||||||||
41 | fmean (Word8) | 47.3 | 12.4 | 20.2 | 10.8 | |||||||||||||||||||||
42 | fmean (Double) | 1.2 | 0.68 | |||||||||||||||||||||||
43 | fmax | 50.8 | 24.6 | 56.3 | 4.4 | 4.2 | ||||||||||||||||||||
44 | fmin | 51.1 | 25.2 | 51.7 | 4.7 | 4.3 | ||||||||||||||||||||
45 | fmajority | 125.4 | 83.6 | 199 | 56.3 | 62.1 | ||||||||||||||||||||
46 | fminority | 126 | 81.3 | 199 | 53.8 | 60 | ||||||||||||||||||||
47 | fvariety | 75.4 | 57.4 | 132 | 43.6 | 44 | ||||||||||||||||||||
48 | fpercentage | 42.5 | 15.2 | 27.2 | 3.2 | 2.8 | ||||||||||||||||||||
49 | fpercentile | 47.6 | 16.5 | 34 | 4.2 | 4.1 | ||||||||||||||||||||
50 | flinkage | 97.5 | 70.2 | 88.1 | 3.4 | 1.8 | ||||||||||||||||||||
51 | flength | 222.4 | 181.6 | 319.8 | 4.6 | 3.5 | ||||||||||||||||||||
52 | fpartition | 82.3 | 61.4 | 59 | 39.7 | |||||||||||||||||||||
53 | fshape | 114.1 | 91.8 | 91.2 | 59.9 | |||||||||||||||||||||
54 | ffrontage . fshape | 166.7 | 122 | 156.5 | 14.8 | 16.9 | ||||||||||||||||||||
55 | farea | 171.3 | 120.1 | 150.7 | 14.8 | 15.2 | ||||||||||||||||||||
56 | fvolume (Word8) | 248.8 | 96.4 | 183.7 | 97.5 | |||||||||||||||||||||
57 | fvolume (Word8 -> Double) | 13.3 | 11.4 | |||||||||||||||||||||||
58 | fvolume (Double) | 3.1 | 2.2 | 1.8 | ||||||||||||||||||||||
59 | fgradient (Word8) | 436.1 | 398.7 | 792.6 | 213.1 | 179 | 183.7 | |||||||||||||||||||
60 | fgradient (Double) | 452.8 | 172.8 | 164.8 | 172.4 | |||||||||||||||||||||
61 | faspect - unsafe (Word8) | 477.3 | 442.4 | 895.3 | 219 | 234 | 228.6 | |||||||||||||||||||
62 | faspect - unsafe (Double) | 442.6 | 206.9 | 202 | 222.7 | |||||||||||||||||||||
63 | faspect - safe (Word8) | 573 | 554.1 | 999 | 344.3 | 314 | 321.9 | |||||||||||||||||||
64 | faspect - safe (Double) | 512.1 | 296 | 285 | 307.8 | |||||||||||||||||||||
65 | fdownstream (Word8) | 293 | 249.3 | 563.7 | 65.2 | 20 | 13.8 | |||||||||||||||||||
66 | fdownstream (Double) | 249.9 | 55.2 | 9.2 | 6.5 | |||||||||||||||||||||
67 | fupstream (Word8) | 293 | 253 | 571.6 | 74.8 | 20.5 | 14.9 | |||||||||||||||||||
68 | fupstream (Double) | 259.2 | 64.3 | 13.2 | 7.9 | |||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | Composite Operations | Baseline (ms) | Better fromRGBA | Seq | LLVM | |||||||||||||||||||||
71 | NDVI | 16 | 2.2 | 2.3 | 2.5 | |||||||||||||||||||||
72 | EVI | 48 | 4.5 | 3.9 | 4.4 | |||||||||||||||||||||
73 | EVI + Colour | 5.9 | 5.4 | |||||||||||||||||||||||
74 | EVI + Colour + PNG (D) | 12.8 | 12.7 | |||||||||||||||||||||||
75 | EVI + Colour + PNG (S) | 11.1 | 11 | |||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | EVI on biggers Rasters | Haskell - 1 CPU | Haskell - 2 CPU | Haskell - 4 CPU | GeoTrellis (Scala) | Rasterio (Python) | ||||||||||||||||||||
78 | 512x512 | 7.6 | 4.2 | 3.7 | 10.7 | 1.6 | ||||||||||||||||||||
79 | 1024x1024 | 31.3 | 16.6 | 14 | 44.8 | 7.7 | ||||||||||||||||||||
80 | 2048x2048 | 124.8 | 61.2 | 53.8 | 185.2 | 61.5 | ||||||||||||||||||||
81 | 4096x4096 | 481.5 | 275.4 | 218 | 856.3 | 243.2 | ||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |