Source code: https://gitlab.com/gasche/gc-latency-experiment/merge_requests/16
Hardware:
- MacBook Pro (Retina, 13-inch, Early 2015)
- 2.7 GHz Intel Core i5
- 16 GB 1867 MHz DDR3
Compilers:
- Nim Compiler Version 0.16.1 (2017-04-05) [MacOSX: amd64]
make run-nim
- java version "1.8.0_66"
make run-java-map-g1
- go version go1.8.1 darwin/amd64
make run-go
- D (LDC2 1.1.1 (DMD v2.071.2, LLVM 4.0.0))
make run-d
- Haskell (The Glorious Glasgow Haskell Compilation System, version 8.0.2)
make run-haskell
Results: (Each run specifies the maximum pause time)
Language | Run #1 (ms) | Run #2 (ms) | Run #3 (ms) | Avg (ms) | RSS (mb) |
---|---|---|---|---|---|
Nim | 0.7460 | 0.5247 | 0.7781 | 0.6829 | 277 |
Go | 12.07 | 19.69 | 13.23 | 15.00 | 430 |
Java | 83 | 30 | 35 | 49.33 | 561 |
Haskell | 71.0 | 70.0 | 70.2 | 70.4 | 595 |
(D was crossed out because its only implementation uses a map)