Warmup vs Original vs UpdatedEmscripten vs LoicRewrite vs SubarrayOnTrans vs SubarrayOnPos vs SubarrayOnTransAndPos vs SubarrayOnTransAndPosWithFRound vs SubarrayOnTransAndPosWithoutPlus vs PosInOutOfTheLoopF32Array vs PosInOutOfTheLoopF32ArrayFromSubarray vs PosInOutOfTheLoopVars vs CacheTransWithSubarray vs CacheTransWithSlice vs CacheTransWithF32ArraySetFromSubarray vs CacheTransWithVarsFromSubarray vs CacheTransWithArrayFromSubarray vs SubarrayOnPosAndCacheTransWithSubarray vs SubarrayOnPosAndCacheTransWithSubarrayAndInterleavingData vs SubarrayOnPosAndCacheTransWithSubarrayAndSmallTrans vs SubarrayOnPosAndCacheTransWithSubarrayAndInterleavingDataAndSmallTrans vs F64PosAndF64Trans vs F64PosAndF64TransAndF64Res vs I32Joint vs VarInsteadOfLetAndConstFastest: SubarrayOnPosAndCacheTransWithSubarray (1574.1x faster)
257 ops/sec
254 ops/sec
240 ops/sec
239 ops/sec
208 ops/sec
207 ops/sec
206 ops/sec
203 ops/sec
202 ops/sec
201 ops/sec
175 ops/sec
86 ops/sec
85 ops/sec
80 ops/sec
79 ops/sec
79 ops/sec
54 ops/sec
19 ops/sec
18 ops/sec
4 ops/sec
0 ops/sec
Fastest: SubarrayOnPosAndCacheTransWithSubarray (1391.2x faster)
118 ops/sec
117 ops/sec
115 ops/sec
114 ops/sec
103 ops/sec
103 ops/sec
101 ops/sec
101 ops/sec
100 ops/sec
99 ops/sec
86 ops/sec
42 ops/sec
42 ops/sec
41 ops/sec
41 ops/sec
40 ops/sec
30 ops/sec
9 ops/sec
9 ops/sec
2 ops/sec
0 ops/sec
Results show median performance across all community submissions. Run this benchmark yourself to verify on your device.
| Test case name | Result |
|---|---|
| Warmup | |
| Original | |
| UpdatedEmscripten | |
| LoicRewrite | |
| SubarrayOnTrans | |
| SubarrayOnPos | |
| SubarrayOnTransAndPos | |
| SubarrayOnTransAndPosWithFRound | |
| SubarrayOnTransAndPosWithoutPlus | |
| PosInOutOfTheLoopF32Array | |
| PosInOutOfTheLoopF32ArrayFromSubarray | |
| PosInOutOfTheLoopVars | |
| CacheTransWithSubarray | |
| CacheTransWithSlice | |
| CacheTransWithF32ArraySetFromSubarray | |
| CacheTransWithVarsFromSubarray | |
| CacheTransWithArrayFromSubarray | |
| SubarrayOnPosAndCacheTransWithSubarray | |
| SubarrayOnPosAndCacheTransWithSubarrayAndInterleavingData | |
| SubarrayOnPosAndCacheTransWithSubarrayAndSmallTrans | |
| SubarrayOnPosAndCacheTransWithSubarrayAndInterleavingDataAndSmallTrans | |
| F64PosAndF64Trans | |
| F64PosAndF64TransAndF64Res | |
| I32Joint | |
| VarInsteadOfLetAndConst |
| Test name | Executions per second |
|---|---|
| ✓ F64PosAndF64TransAndF64Res | 3,679 Ops/sec |
| LoicRewrite | 3,642 Ops/sec |
| F64PosAndF64Trans | 3,330 Ops/sec |
| PosInOutOfTheLoopVars | 3,296 Ops/sec |
| I32Joint | 3,220 Ops/sec |
| VarInsteadOfLetAndConst | 2,740 Ops/sec |
| PosInOutOfTheLoopF32Array | 2,442 Ops/sec |
| Original | 1,674 Ops/sec |
| CacheTransWithSlice | 1,280 Ops/sec |
| CacheTransWithSubarray | 1,161 Ops/sec |
| UpdatedEmscripten | 1,111 Ops/sec |
| CacheTransWithVarsFromSubarray | 982 Ops/sec |
| CacheTransWithF32ArraySetFromSubarray | 873 Ops/sec |
| SubarrayOnTrans | 326 Ops/sec |
| SubarrayOnPosAndCacheTransWithSubarrayAndInterleavingData | 280 Ops/sec |
| SubarrayOnPosAndCacheTransWithSubarray | 274 Ops/sec |
| SubarrayOnPos | 269 Ops/sec |
| SubarrayOnPosAndCacheTransWithSubarrayAndSmallTrans | 240 Ops/sec |
| PosInOutOfTheLoopF32ArrayFromSubarray | 201 Ops/sec |
| SubarrayOnTransAndPosWithoutPlus | 193 Ops/sec |
| SubarrayOnPosAndCacheTransWithSubarrayAndInterleavingDataAndSmallTrans | 190 Ops/sec |
| SubarrayOnTransAndPosWithFRound | 175 Ops/sec |
| SubarrayOnTransAndPos | 168 Ops/sec |
| CacheTransWithArrayFromSubarray | 124 Ops/sec |
| Warmup | 1 Ops/sec |