Measure the startup overhead of different programming languages
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

++

iacore 43610114

+49
+9
readme.md
··· 1 + How much pain will the programmer take to make the program run fast? 2 + 3 + | Command | Mean [µs] | Min [µs] | Max [µs] | Relative | 4 + |:---|---:|---:|---:|---:| 5 + | `true` | 272.6 ± 27.3 | 235.1 | 564.7 | 3.40 ± 0.74 | 6 + | `./true-s` | 80.2 ± 15.6 | 70.0 | 671.2 | 1.00 | 7 + | `./true-zig` | 85.5 ± 14.9 | 74.2 | 385.7 | 1.07 ± 0.28 | 8 + | `./true-hare` | 92.7 ± 18.1 | 80.5 | 1041.3 | 1.16 ± 0.32 | 9 + | `./true-go` | 564.8 ± 43.6 | 484.6 | 2070.5 | 7.04 ± 1.47 |
+10
run-all
··· 1 + nasm -f elf64 true.s 2 + ld -o true-s true.o 3 + 4 + zig build-exe -femit-bin=true-zig -O ReleaseFast true.zig 5 + 6 + hare build -o true-hare -F -R true.ha 7 + 8 + go build -o true-go true.go 9 + 10 + hyperfine --export-markdown timings.md -N 'true' './true-s' './true-zig' './true-hare' './true-go'
+7
timings.md
··· 1 + | Command | Mean [µs] | Min [µs] | Max [µs] | Relative | 2 + |:---|---:|---:|---:|---:| 3 + | `true` | 272.6 ± 27.3 | 235.1 | 564.7 | 3.40 ± 0.74 | 4 + | `./true-s` | 80.2 ± 15.6 | 70.0 | 671.2 | 1.00 | 5 + | `./true-zig` | 85.5 ± 14.9 | 74.2 | 385.7 | 1.07 ± 0.28 | 6 + | `./true-hare` | 92.7 ± 18.1 | 80.5 | 1041.3 | 1.16 ± 0.32 | 7 + | `./true-go` | 564.8 ± 43.6 | 484.6 | 2070.5 | 7.04 ± 1.47 |
+5
true.go
··· 1 + package main 2 + import "os" 3 + func main() { 4 + os.Exit(0); 5 + }
+6
true.ha
··· 1 + use os; 2 + 3 + export fn main() void = { 4 + os::exit(0); 5 + }; 6 +
true.o

This is a binary file and will not be displayed.

+7
true.s
··· 1 + section .text 2 + global _start 3 + 4 + _start: 5 + mov rax, 60 ; syscall number for exit 6 + mov rdi, 0 ; exit code 0 7 + syscall ; call kernel
+5
true.zig
··· 1 + const std = @import("std"); 2 + 3 + pub fn main() void { 4 + std.process.exit(0); 5 + }