-
JavaScript: Hand-written JavaScript.
-
Idris-codegen-es: Idris 1.0 with idris-codegen-es.
-
Idris (Official JS): Idris 1.0 with official JavaScript Codegen.
-
PureScript: Using Latest PureScript.
-
PureScript (Uncurried): Latest PureScript with
Data.Function.Uncurry. -
Idris (C): Idris 1.0 with C codegen on Windows x64.
-
C: Hand-written JavaScript, compiled with gcc 6.2.0, with Win64 settings and
-O3.
All JavaScript files have been wrapped to add performance counter using process.hrtime. Due to V8's optimization strategy, all tests are run in 20 times and all results are shown.
All Tests are run on:
- Node.js v6.9.5 LTS;
- Windows 10 RS2 (15063) x64;
- Dell workstation with Intel Xeon E5-2609 v3.
| JavaScript | Idris-codegen-es | Idris (Official JS) | PureScript | PureScript (Uncurried) | Idris (C) | C |
|---|---|---|---|---|---|---|
| 13.73339506 | 13.42742282 | 1704.505935 | 200.855022 | 22.124794 | 94 | 5.578 |
| 14.78157305 | 13.43711933 | 1689.17194 | 193.658534 | 21.573255 | 78 | 5.562 |
| 14.68451508 | 13.36427394 | 1757.765448 | 192.537088 | 21.568393 | 94 | 5.5 |
| 14.40595136 | 13.35289202 | 1724.666578 | 217.592446 | 22.068075 | 109 | 5.485 |
| 14.22472414 | 13.36110299 | 1720.508691 | 192.888756 | 21.689937 | 109 | 5.484 |
| 14.20338641 | 13.32920984 | 1666.046162 | 192.978969 | 21.524637 | 94 | 5.594 |
| 13.4270619 | 13.3442705 | 1615.222931 | 208.516077 | 21.572175 | 110 | 5.547 |
| 13.5088298 | 13.52317791 | 1643.122418 | 193.317672 | 21.539222 | 78 | 5.531 |
| 13.92866314 | 13.40879147 | 1603.685972 | 220.824436 | 21.506811 | 109 | 5.531 |
| 13.88535464 | 13.43780537 | 1506.79053 | 215.318221 | 21.523557 | 109 | 5.5 |
| 14.14017507 | 13.39441686 | 1509.226273 | 196.178007 | 21.492226 | 79 | 5.547 |
| 14.68206731 | 13.55266719 | 1580.30144 | 208.429646 | 21.50465 | 93 | 5.516 |
| 14.903307 | 13.35848305 | 1478.445922 | 213.409169 | 21.493306 | 125 | 5.515 |
| 14.84051769 | 13.43006437 | 1633.779733 | 191.941793 | 21.484663 | 94 | 5.547 |
| 14.01911638 | 13.39064089 | 1598.434188 | 201.801984 | 21.564072 | 94 | 5.547 |
| 14.5271873 | 13.56396808 | 1620.066866 | 217.814466 | 21.521936 | 109 | 5.547 |
| 14.46749568 | 13.47575952 | 1631.17707 | 205.041538 | 21.546245 | 110 | 5.469 |
| 13.77878838 | 13.39785791 | 1560.412516 | 222.862054 | 21.510052 | 93 | 5.5 |
| 13.86227816 | 13.53480292 | 1686.185198 | 210.021062 | 21.488984 | 110 | 5.484 |
| 14.1432812 | 13.41552771 | 1631.03986 | 202.36919 | 21.514914 | 125 | 5.531 |