Zig VS Wasm benchmarks

Current benchmark data was generated on Mon Oct 03 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 3.rs 1977ms 9.3ms 52.8MB 1950ms 10ms wasmedgec 0.11.0
wasm 3.rs 2038ms 3.5ms 37.8MB 2000ms 17ms wasmer/llvm 2.3.0
zig 1.zig 2047ms 16ms 49.2MB 2020ms 10ms zig 0.10.0-dev.4213+91b05ad47
wasm 5.rs 2088ms 62ms 34.2MB 2070ms 3ms wasmedgec 0.11.0
wasm 4.rs 2222ms 1.9ms 35.0MB 2200ms 7ms wasmedgec 0.11.0
wasm 4.rs 2387ms 3.6ms 22.0MB 2357ms 10ms wasmer/llvm 2.3.0
wasm 3.rs 2454ms 12ms 42.6MB 2427ms 10ms wasmtime 1.0.1
wasm 5.rs 2507ms 3.5ms 21.9MB 2487ms 7ms wasmer/llvm 2.3.0
wasm 5.rs 2667ms 46ms 58.2MB 2683ms 3ms node 16.17.0
wasm 3.rs 2758ms 54ms 74.6MB 2770ms 7ms node 16.17.0
wasm 4.rs 2777ms 52ms 58.3MB 2783ms 10ms node 16.17.0
wasm 5.rs 2895ms 18ms 26.8MB 2873ms 3ms wasmtime 1.0.1
wasm 4.rs 3138ms 8.6ms 26.7MB 3120ms 0ms wasmtime 1.0.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 175ms 1.3ms 7.1MB 160ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 3.rs 191ms 2.0ms 23.0MB 180ms 0ms wasmedgec 0.11.0
wasm 3.rs 193ms 0.8ms 9.8MB 180ms 0ms wasmer/llvm 2.3.0
wasm 5.rs 200ms 0.5ms 20.8MB 183ms 0ms wasmedgec 0.11.0
wasm 4.rs 216ms 0.4ms 21.0MB 207ms 0ms wasmedgec 0.11.0
wasm 4.rs 226ms 0.7ms 8.0MB 213ms 0ms wasmer/llvm 2.3.0
wasm 3.rs 232ms 1.0ms 14.7MB 217ms 3ms wasmtime 1.0.1
wasm 5.rs 238ms 0.3ms 7.9MB 220ms 0ms wasmer/llvm 2.3.0
wasm 5.rs 279ms 4.8ms 12.8MB 263ms 0ms wasmtime 1.0.1
wasm 4.rs 303ms 2.2ms 12.7MB 290ms 0ms wasmtime 1.0.1
wasm 5.rs 320ms 4.5ms 44.1MB 333ms 3ms node 16.17.0
wasm 4.rs 331ms 1.3ms 44.1MB 347ms 0ms node 16.17.0
wasm 3.rs 331ms 1.1ms 46.6MB 340ms 7ms node 16.17.0

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 465ms 0.5ms 7.4MB 450ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 479ms 0.8ms 20.4MB 460ms 0ms wasmedgec 0.11.0
wasm 1.rs 620ms 0.6ms 12.1MB 603ms 0ms wasmtime 1.0.1
wasm 1.rs 707ms 1.3ms 48.0MB 747ms 13ms node 16.17.0
zig 1.zig 3830ms 2.0ms 2.7MB 3800ms 13ms zig 0.10.0-dev.4213+91b05ad47

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 124ms 3.4ms 6.8MB 110ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 129ms 0.7ms 19.6MB 120ms 0ms wasmedgec 0.11.0
wasm 1.rs 162ms 0.4ms 11.6MB 147ms 0ms wasmtime 1.0.1
wasm 1.rs 293ms 34ms 48.8MB 320ms 10ms node 16.17.0
zig 1.zig 636ms 0.7ms 2.1MB 613ms 7ms zig 0.10.0-dev.4213+91b05ad47

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 1322ms 17ms 0.7MB 2570ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 3-i.zig 1563ms 0.9ms 0.6MB 1550ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 2.zig 2503ms 2.0ms 0.6MB 2490ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 1.zig 3421ms 7.9ms 0.6MB 3410ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 4690ms 23ms 49.8MB 4697ms 7ms node 16.17.0
wasm 1.rs 4958ms 15ms 4.9MB 4940ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 4993ms 6.7ms 9.3MB 4980ms 0ms wasmtime 1.0.1
wasm 1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmedgec 0.11.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 123ms 1.6ms 0.7MB 220ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 3-i.zig 132ms 0.4ms 0.6MB 120ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 2.zig 212ms 1.5ms 0.6MB 200ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 1.zig 285ms 1.0ms 0.6MB 273ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 414ms 0.4ms 4.8MB 400ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 421ms 0.8ms 9.3MB 410ms 0ms wasmtime 1.0.1
wasm 1.rs 446ms 0.4ms 18.7MB 430ms 0ms wasmedgec 0.11.0
wasm 1.rs 468ms 1.6ms 43.8MB 477ms 3ms node 16.17.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 157ms 3.1ms 0.6MB 140ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 338ms 1.0ms 6.2MB 320ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 349ms 2.0ms 11.2MB 333ms 3ms wasmtime 1.0.1
wasm 1.rs 358ms 0.6ms 19.1MB 340ms 0ms wasmedgec 0.11.0
wasm 1.rs 464ms 3.0ms 43.8MB 477ms 7ms node 16.17.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 18ms 0.3ms 0.6MB 10ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 38ms 0.7ms 6.2MB 27ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 43ms 0.8ms 9.5MB 30ms 0ms wasmtime 1.0.1
wasm 1.rs 45ms 0.3ms 19.0MB 30ms 0ms wasmedgec 0.11.0
wasm 1.rs 125ms 2.6ms 43.7MB 150ms 0ms node 16.17.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 2.0ms 0.7ms 0.6MB 0ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 2.9ms 0.7ms 4.9MB 0ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 6.6ms 1.2ms 10.8MB 0ms 0ms wasmtime 1.0.1
wasm 1.rs 6.9ms 0.5ms 18.7MB 0ms 0ms wasmedgec 0.11.0
wasm 1.rs 80ms 1.1ms 43.5MB 96ms 4ms node 16.17.0

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 113ms 0.8ms 12.0MB 97ms 0ms zig 0.10.0-dev.4213+91b05ad47

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 685ms 0.2ms 81.0MB 640ms 27ms zig 0.10.0-dev.4213+91b05ad47

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 1230ms 5.9ms 21.7MB 1200ms 13ms zig 0.10.0-dev.4213+91b05ad47

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 136ms 1.3ms 9.2MB 120ms 0ms zig 0.10.0-dev.4213+91b05ad47

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 44ms 0.5ms 2.9MB 33ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 125ms 0.6ms 6.0MB 117ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 139ms 1.7ms 20.9MB 130ms 0ms wasmedgec 0.11.0
wasm 1.rs 151ms 0.5ms 11.1MB 137ms 0ms wasmtime 1.0.1
wasm 1.rs 226ms 3.1ms 44.5MB 250ms 0ms node 16.17.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 127ms 3.7ms 2.8MB 117ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 371ms 1.6ms 6.3MB 360ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 398ms 6.5ms 18.9MB 387ms 0ms wasmedgec 0.11.0
wasm 1.rs 441ms 13ms 11.2MB 427ms 0ms wasmtime 1.0.1
wasm 1.rs 489ms 11ms 44.6MB 507ms 3ms node 16.17.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 21ms 0.6ms 1.6MB 10ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 62ms 0.5ms 5.0MB 50ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 72ms 0.8ms 19.0MB 60ms 0ms wasmedgec 0.11.0
wasm 1.rs 75ms 1.2ms 9.3MB 67ms 0ms wasmtime 1.0.1
wasm 1.rs 158ms 0.7ms 44.6MB 177ms 3ms node 16.17.0

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 422ms 0.6ms 4.3MB 410ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 8.rs 1063ms 2.7ms 47.8MB 1077ms 7ms node 16.17.0
wasm 8.rs 1099ms 0.9ms 21.8MB 1087ms 0ms wasmedgec 0.11.0
wasm 8.rs 1168ms 0.7ms 8.9MB 1157ms 0ms wasmer/llvm 2.3.0
wasm 8.rs 1295ms 0.8ms 13.9MB 1280ms 0ms wasmtime 1.0.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 20ms 0.6ms 0.6MB 10ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 8.rs 52ms 0.2ms 6.0MB 43ms 0ms wasmer/llvm 2.3.0
wasm 8.rs 55ms 0.4ms 19.0MB 47ms 0ms wasmedgec 0.11.0
wasm 8.rs 62ms 1.2ms 11.0MB 50ms 0ms wasmtime 1.0.1
wasm 8.rs 127ms 2.6ms 44.6MB 147ms 0ms node 16.17.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 1031ms 8.8ms 41.2MB 1007ms 7ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 1090ms 26ms 43.1MB 1067ms 7ms wasmedgec 0.11.0
wasm 1.rs 1243ms 4.5ms 29.7MB 1213ms 13ms wasmer/llvm 2.3.0
wasm 1.rs 1378ms 38ms 67.7MB 1377ms 17ms node 16.17.0
wasm 1.rs 1427ms 8.8ms 34.7MB 1410ms 3ms wasmtime 1.0.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 209ms 1.6ms 11.2MB 190ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 233ms 0.5ms 25.0MB 220ms 0ms wasmedgec 0.11.0
wasm 1.rs 266ms 0.9ms 11.9MB 257ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 309ms 3.4ms 16.9MB 297ms 0ms wasmtime 1.0.1
wasm 1.rs 351ms 1.7ms 49.4MB 357ms 17ms node 16.17.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 302ms 0.2ms 0.7MB 290ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 1.zig 368ms 3.6ms 0.7MB 357ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 468ms 0.9ms 4.9MB 457ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 498ms 0.2ms 9.6MB 487ms 0ms wasmtime 1.0.1
wasm 1.rs 501ms 0.6ms 18.0MB 487ms 0ms wasmedgec 0.11.0
wasm 1.rs 572ms 2.4ms 48.5MB 590ms 10ms node 16.17.0
wasm 2.rs 678ms 0.5ms 19.1MB 667ms 0ms wasmedgec 0.11.0
wasm 2.rs 678ms 0.6ms 9.7MB 667ms 0ms wasmtime 1.0.1
wasm 2.rs 689ms 1.3ms 4.8MB 677ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 756ms 0.6ms 48.8MB 780ms 3ms node 16.17.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 33ms 0.4ms 0.7MB 23ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 1.zig 39ms 1.1ms 0.7MB 30ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 1.rs 51ms 0.3ms 4.9MB 40ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 57ms 0.4ms 11.0MB 43ms 0ms wasmtime 1.0.1
wasm 1.rs 58ms 0.8ms 18.9MB 50ms 0ms wasmedgec 0.11.0
wasm 2.rs 73ms 0.4ms 4.8MB 60ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 75ms 1.0ms 11.4MB 67ms 0ms wasmtime 1.0.1
wasm 2.rs 76ms 0.1ms 18.7MB 67ms 0ms wasmedgec 0.11.0
wasm 1.rs 149ms 3.1ms 48.3MB 163ms 13ms node 16.17.0
wasm 2.rs 168ms 0.9ms 52.3MB 197ms 3ms node 16.17.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 422ms 1.6ms 6.1MB 410ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 2.rs 509ms 0.8ms 10.6MB 490ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 561ms 4.7ms 23.7MB 543ms 0ms wasmedgec 0.11.0
wasm 1.rs 665ms 22ms 57.7MB 647ms 3ms wasmedgec 0.11.0
wasm 2.rs 687ms 3.4ms 15.8MB 673ms 0ms wasmtime 1.0.1
wasm 2.rs 727ms 3.0ms 48.9MB 740ms 7ms node 16.17.0
wasm 1.rs 791ms 35ms 83.4MB 793ms 17ms node 16.17.0
wasm 1.rs 802ms 18ms 44.8MB 770ms 13ms wasmer/llvm 2.3.0
wasm 1.rs 1036ms 24ms 50.0MB 1017ms 0ms wasmtime 1.0.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 94ms 0.5ms 2.5MB 87ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 2.rs 116ms 0.8ms 7.1MB 103ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 136ms 0.6ms 20.0MB 127ms 0ms wasmedgec 0.11.0
wasm 1.rs 141ms 2.5ms 15.6MB 127ms 0ms wasmer/llvm 2.3.0
wasm 1.rs 147ms 1.0ms 28.9MB 137ms 0ms wasmedgec 0.11.0
wasm 2.rs 168ms 0.5ms 12.1MB 157ms 0ms wasmtime 1.0.1
wasm 1.rs 222ms 0.6ms 20.5MB 210ms 0ms wasmtime 1.0.1
wasm 1.rs 233ms 0.9ms 53.7MB 240ms 10ms node 16.17.0
wasm 2.rs 236ms 2.9ms 44.6MB 247ms 3ms node 16.17.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 2198ms 1.2ms 2.4MB 2177ms 7ms zig 0.10.0-dev.4213+91b05ad47
wasm 2.rs 2996ms 0.5ms 6.7MB 2980ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 3127ms 9.9ms 19.9MB 3110ms 0ms wasmedgec 0.11.0
wasm 2.rs 3380ms 0.6ms 11.3MB 3363ms 0ms wasmtime 1.0.1
wasm 2.rs 3651ms 49ms 49.1MB 3700ms 3ms node 16.17.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 497ms 3.6ms 2.0MB 480ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 2.rs 707ms 0.5ms 6.1MB 697ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 744ms 2.7ms 19.4MB 730ms 0ms wasmedgec 0.11.0
wasm 2.rs 802ms 1.1ms 12.0MB 790ms 0ms wasmtime 1.0.1
wasm 2.rs 967ms 3.2ms 48.6MB 1010ms 10ms node 16.17.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 1066ms 3.0ms 1.8MB 2053ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 2.zig 2063ms 2.2ms 1.6MB 2050ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 2.rs 4127ms 2.6ms 19.1MB 4113ms 0ms wasmedgec 0.11.0
wasm 7.rs 4198ms 8.5ms 6.5MB 4180ms 0ms wasmer/llvm 2.3.0
wasm 7.rs 4264ms 0.3ms 19.0MB 4250ms 0ms wasmedgec 0.11.0
wasm 2.rs 4302ms 2.2ms 48.7MB 4317ms 10ms node 16.17.0
wasm 2.rs 4399ms 7.8ms 6.0MB 4380ms 0ms wasmer/llvm 2.3.0
wasm 7.rs 4512ms 1.7ms 48.3MB 4537ms 10ms node 16.17.0
wasm 2.rs 4543ms 13ms 11.6MB 4533ms 0ms wasmtime 1.0.1
zig 1.zig 4578ms 0.9ms 1.6MB 4567ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 7.rs 4610ms 0.1ms 11.1MB 4600ms 0ms wasmtime 1.0.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 277ms 0.8ms 0.7MB 507ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 2.zig 519ms 2.7ms 0.7MB 510ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 2.rs 1039ms 0.9ms 19.1MB 1023ms 3ms wasmedgec 0.11.0
wasm 7.rs 1052ms 0.4ms 6.3MB 1040ms 0ms wasmer/llvm 2.3.0
wasm 7.rs 1074ms 0.2ms 18.4MB 1070ms 0ms wasmedgec 0.11.0
wasm 2.rs 1102ms 1.3ms 5.9MB 1090ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 1142ms 1.3ms 48.5MB 1167ms 3ms node 16.17.0
wasm 2.rs 1147ms 0.5ms 11.1MB 1133ms 0ms wasmtime 1.0.1
zig 1.zig 1148ms 1.1ms 0.7MB 1133ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 7.rs 1161ms 0.3ms 11.1MB 1147ms 0ms wasmtime 1.0.1
wasm 7.rs 1203ms 1.2ms 48.3MB 1230ms 3ms node 16.17.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 78ms 3.8ms 0.8MB 120ms 0ms zig 0.10.0-dev.4213+91b05ad47
zig 2.zig 132ms 0.3ms 0.7MB 120ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 7.rs 267ms 0.3ms 4.9MB 257ms 0ms wasmer/llvm 2.3.0
wasm 2.rs 267ms 0.4ms 18.8MB 253ms 0ms wasmedgec 0.11.0
wasm 7.rs 276ms 0.3ms 18.8MB 260ms 0ms wasmedgec 0.11.0
wasm 2.rs 279ms 0.2ms 4.7MB 270ms 0ms wasmer/llvm 2.3.0
zig 1.zig 289ms 0.1ms 0.7MB 280ms 0ms zig 0.10.0-dev.4213+91b05ad47
wasm 2.rs 293ms 0.7ms 11.4MB 280ms 0ms wasmtime 1.0.1
wasm 7.rs 296ms 0.5ms 9.5MB 287ms 0ms wasmtime 1.0.1
wasm 2.rs 365ms 1.8ms 48.3MB 383ms 7ms node 16.17.0
wasm 7.rs 388ms 5.9ms 48.2MB 400ms 10ms node 16.17.0