C# VS Nim benchmarks

Current benchmark data was generated on Mon Feb 06 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -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
csharp 1.cs 1487ms 35ms 306.6MB 1350ms 213ms dotnet/aot 7.0.102
csharp 1.cs 1715ms 29ms 426.3MB 1513ms 263ms dotnet 7.0.102
nim 2.nim 2133ms 3.3ms 33.6MB 2107ms 13ms nim 1.6.10
nim 2.nim 2138ms 5.8ms 35.0MB 2120ms 3ms nim/clang 1.6.10
csharp 1.cs 2432ms 49ms 104.6MB 2877ms 213ms mono 6.12.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 144ms 6.2ms 59.4MB 120ms 17ms dotnet/aot 7.0.102
csharp 1.cs 166ms 4.5ms 46.1MB 137ms 20ms mono 6.12.0
nim 2.nim 201ms 0.2ms 5.7MB 190ms 0ms nim/clang 1.6.10
nim 2.nim 202ms 1.0ms 5.6MB 190ms 0ms nim 1.6.10
csharp 1.cs 281ms 3.2ms 151.0MB 200ms 53ms dotnet 7.0.102

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs timeout 0.0ms 159.7MB 9273ms 90ms dotnet 7.0.102
csharp 1.cs timeout 0.0ms 66.7MB 9393ms 50ms dotnet/aot 7.0.102
nim 1.nim timeout 0.0ms 429.3MB 3407ms 1243ms nim 1.6.10
nim 1.nim timeout 0.0ms 432.9MB 3397ms 1250ms nim/clang 1.6.10

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1-m.cs 384ms 14ms 52.2MB 663ms 27ms dotnet/aot 7.0.102
csharp 1-m.cs 619ms 42ms 143.6MB 960ms 63ms dotnet 7.0.102
nim 1.nim timeout 0.0ms 431.1MB 3390ms 1257ms nim 1.6.10
nim 1.nim timeout 0.0ms 433.4MB 3370ms 1273ms nim/clang 1.6.10

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs timeout 0.0ms 109.7MB 4953ms 23ms dotnet 7.0.102
csharp 1.cs timeout 0.0ms 22.7MB 4990ms 0ms dotnet/aot 7.0.102
nim 1.nim timeout 0.0ms 3.0MB 4983ms 0ms nim 1.6.10
nim 1.nim timeout 0.0ms 3.0MB 4987ms 0ms nim/clang 1.6.10

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 847ms 2.4ms 19.3MB 837ms 0ms dotnet/aot 7.0.102
csharp 1.cs 959ms 5.1ms 109.5MB 900ms 30ms dotnet 7.0.102
nim 1.nim timeout 0.0ms 2.3MB 4990ms 0ms nim 1.6.10
nim 1.nim timeout 0.0ms 2.2MB 4990ms 0ms nim/clang 1.6.10

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 242ms 0.5ms 1.0MB 227ms 0ms nim 1.6.10
nim 2.nim 308ms 2.2ms 1.3MB 300ms 0ms nim/clang 1.6.10
csharp 5-m.cs 316ms 19ms 47.2MB 503ms 90ms dotnet/aot 7.0.102
csharp 5-m.cs 544ms 24ms 61.2MB 910ms 113ms mono 6.12.0
csharp 5-m.cs 569ms 35ms 171.4MB 853ms 150ms dotnet 7.0.102
nim 1.nim 690ms 3.1ms 1.2MB 593ms 80ms nim/clang 1.6.10
nim 1.nim 712ms 0.9ms 1.0MB 607ms 90ms nim 1.6.10

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 26ms 0.8ms 1.1MB 20ms 0ms nim 1.6.10
nim 2.nim 34ms 0.4ms 1.2MB 23ms 0ms nim/clang 1.6.10
csharp 5.cs 49ms 1.7ms 21.3MB 57ms 13ms dotnet/aot 7.0.102
nim 1.nim 72ms 1.4ms 1.2MB 53ms 3ms nim/clang 1.6.10
nim 1.nim 74ms 0.4ms 1.0MB 60ms 0ms nim 1.6.10
csharp 5.cs 96ms 10ms 39.2MB 113ms 30ms mono 6.12.0
csharp 5.cs 143ms 4.6ms 114.0MB 117ms 53ms dotnet 7.0.102

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 1.4ms 0.5ms 1.0MB 0ms 0ms nim 1.6.10
nim 1.nim 1.7ms 0.5ms 1.3MB 0ms 0ms nim/clang 1.6.10
csharp 1.cs 6.8ms 0.7ms 12.1MB 0ms 0ms dotnet/aot 7.0.102
csharp 1.cs 21ms 0.6ms 25.6MB 10ms 0ms mono 6.12.0
csharp 1.cs 79ms 2.2ms 101.4MB 28ms 26ms dotnet 7.0.102

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 848ms 0.3ms 93.8MB 397ms 420ms nim 1.6.10
nim 1.nim 881ms 2.7ms 94.5MB 433ms 417ms nim/clang 1.6.10
csharp 2-http2.cs 947ms 15ms 198.0MB 970ms 137ms dotnet 7.0.102
csharp 2.cs 996ms 24ms 244.1MB 853ms 527ms dotnet 7.0.102
csharp 1.cs 1358ms 118ms 249.1MB 1027ms 617ms dotnet 7.0.102
csharp 2-http3.cs 1383ms 20ms 269.8MB 1540ms 367ms dotnet 7.0.102

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 134ms 0.7ms 18.3MB 50ms 70ms nim 1.6.10
nim 1.nim 143ms 2.2ms 18.1MB 57ms 73ms nim/clang 1.6.10
csharp 2.cs 518ms 16ms 158.5MB 410ms 143ms dotnet 7.0.102
csharp 1.cs 598ms 17ms 167.5MB 550ms 193ms dotnet 7.0.102
csharp 2-http2.cs 822ms 2.6ms 164.6MB 777ms 93ms dotnet 7.0.102
csharp 2-http3.cs 896ms 4.7ms 180.4MB 850ms 163ms dotnet 7.0.102

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 413ms 9.4ms 146.7MB 337ms 60ms dotnet 7.0.102
csharp 1.cs 709ms 7.7ms 218.7MB 670ms 90ms dotnet 7.0.102

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 1856ms 53ms 346.0MB 1987ms 143ms dotnet 7.0.102
csharp 1.cs 2972ms 9.9ms 862.9MB 2887ms 410ms dotnet 7.0.102

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6.cs 1021ms 26ms 51.9MB 1473ms 23ms dotnet/aot 7.0.102
csharp 6-m.cs 1387ms 9.1ms 148.2MB 2387ms 53ms dotnet 7.0.102
csharp 6-m.cs 1868ms 29ms 70.5MB 3010ms 30ms mono 6.12.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6.cs 162ms 8.1ms 40.7MB 177ms 20ms dotnet/aot 7.0.102
csharp 6.cs 271ms 7.4ms 51.6MB 363ms 13ms mono 6.12.0
csharp 6.cs 309ms 2.5ms 132.8MB 337ms 43ms dotnet 7.0.102

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 138ms 1.7ms 10.0MB 133ms 0ms dotnet/aot 7.0.102
nim 2.nim 149ms 0.3ms 1.3MB 140ms 0ms nim/clang 1.6.10
nim 2.nim 152ms 0.1ms 1.0MB 140ms 0ms nim 1.6.10
csharp 2.cs 196ms 1.8ms 25.4MB 173ms 7ms mono 6.12.0
csharp 2.cs 228ms 3.3ms 102.0MB 180ms 20ms dotnet 7.0.102
csharp 1.cs 1582ms 3.0ms 60.1MB 1560ms 20ms dotnet/aot 7.0.102
csharp 1.cs 1737ms 17ms 150.1MB 1657ms 63ms dotnet 7.0.102
csharp 1.cs 3349ms 1.6ms 47.6MB 3303ms 40ms mono 6.12.0
nim 1.nim timeout 0.0ms 1.0MB 4990ms 0ms nim 1.6.10
nim 1.nim timeout 0.0ms 1.3MB 4983ms 0ms nim/clang 1.6.10

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 400ms 7.6ms 8.2MB 393ms 0ms dotnet/aot 7.0.102
nim 2.nim 440ms 0.3ms 1.2MB 430ms 0ms nim/clang 1.6.10
nim 2.nim 451ms 0.0ms 1.0MB 440ms 0ms nim 1.6.10
csharp 2.cs 458ms 2.7ms 102.2MB 397ms 33ms dotnet 7.0.102
csharp 2.cs 526ms 2.5ms 24.9MB 510ms 0ms mono 6.12.0
csharp 1.cs 4665ms 7.4ms 58.3MB 4643ms 13ms dotnet/aot 7.0.102
csharp 1.cs 4831ms 4.1ms 145.1MB 4760ms 60ms dotnet 7.0.102
csharp 1.cs timeout 0.0ms 49.7MB 4947ms 43ms mono 6.12.0
nim 1.nim timeout 0.0ms 1.1MB 4987ms 0ms nim 1.6.10
nim 1.nim timeout 0.0ms 1.3MB 4987ms 0ms nim/clang 1.6.10

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 65ms 0.4ms 1.2MB 53ms 0ms nim/clang 1.6.10
nim 2.nim 66ms 0.7ms 1.0MB 60ms 0ms nim 1.6.10
csharp 2.cs 73ms 3.0ms 12.2MB 70ms 0ms dotnet/aot 7.0.102
csharp 2.cs 111ms 1.4ms 27.3MB 100ms 0ms mono 6.12.0
csharp 2.cs 159ms 4.8ms 100.0MB 107ms 23ms dotnet 7.0.102
nim 1.nim 388ms 6.2ms 1.3MB 377ms 0ms nim/clang 1.6.10
nim 1.nim 438ms 20ms 1.0MB 427ms 0ms nim 1.6.10
csharp 1.cs 4299ms 4.1ms 55.2MB 4263ms 23ms dotnet/aot 7.0.102
csharp 1.cs 4553ms 42ms 141.1MB 4467ms 43ms dotnet 7.0.102
csharp 1.cs 4613ms 9.1ms 31.3MB 4597ms 0ms mono 6.12.0

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 587ms 5.9ms 4.8MB 573ms 0ms nim/clang 1.6.10
csharp 2.cs 739ms 25ms 153.2MB 660ms 43ms dotnet 7.0.102
nim 1.nim 869ms 0.8ms 4.5MB 860ms 0ms nim 1.6.10
csharp 3.cs 3410ms 11ms 111.6MB 3357ms 23ms dotnet 7.0.102
csharp 1.cs 3427ms 7.0ms 109.1MB 3367ms 27ms dotnet 7.0.102
csharp 3.cs 3838ms 20ms 19.5MB 3827ms 0ms dotnet/aot 7.0.102
csharp 1.cs 4985ms 4.3ms 19.7MB 4970ms 0ms dotnet/aot 7.0.102
csharp 1.cs timeout 0.0ms 25.2MB 4977ms 0ms mono 6.12.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 27ms 0.5ms 1.2MB 20ms 0ms nim/clang 1.6.10
nim 1.nim 39ms 1.5ms 1.1MB 30ms 0ms nim 1.6.10
csharp 3.cs 169ms 0.5ms 14.9MB 160ms 0ms dotnet/aot 7.0.102
csharp 2.cs 171ms 21ms 111.6MB 117ms 23ms dotnet 7.0.102
csharp 1.cs 217ms 2.4ms 13.2MB 210ms 0ms dotnet/aot 7.0.102
csharp 1.cs 231ms 4.1ms 105.9MB 177ms 20ms dotnet 7.0.102
csharp 3.cs 247ms 0.6ms 108.4MB 187ms 30ms dotnet 7.0.102
csharp 1.cs 741ms 1.6ms 29.4MB 723ms 3ms mono 6.12.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 922ms 6.2ms 378.5MB 783ms 183ms dotnet/aot 7.0.102
csharp 1.cs 967ms 1.1ms 313.5MB 853ms 137ms dotnet/aot 7.0.102
nim 1.nim 1081ms 3.0ms 34.6MB 1060ms 3ms nim/clang 1.6.10
nim 1.nim 1089ms 2.4ms 34.6MB 1063ms 7ms nim 1.6.10
csharp 2.cs 1115ms 10ms 492.0MB 890ms 233ms dotnet 7.0.102
csharp 1.cs 1151ms 7.1ms 499.3MB 970ms 213ms dotnet 7.0.102
csharp 1.cs 1944ms 32ms 143.5MB 2473ms 120ms mono 6.12.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 212ms 5.9ms 138.0MB 163ms 43ms dotnet/aot 7.0.102
nim 1.nim 230ms 0.3ms 9.3MB 217ms 0ms nim 1.6.10
nim 1.nim 230ms 0.9ms 9.5MB 217ms 0ms nim/clang 1.6.10
csharp 1.cs 243ms 2.8ms 148.5MB 183ms 53ms dotnet/aot 7.0.102
csharp 1.cs 349ms 6.0ms 71.9MB 327ms 40ms mono 6.12.0
csharp 2.cs 366ms 4.4ms 206.1MB 270ms 80ms dotnet 7.0.102
csharp 1.cs 409ms 21ms 258.7MB 273ms 97ms dotnet 7.0.102

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 404ms 0.9ms 1.3MB 390ms 0ms nim 1.6.10
nim 2.nim 415ms 13ms 1.2MB 403ms 0ms nim/clang 1.6.10
csharp 9.cs 448ms 2.3ms 102.2MB 397ms 23ms dotnet 7.0.102
csharp 8.cs 580ms 4.8ms 12.2MB 577ms 0ms dotnet/aot 7.0.102
csharp 8.cs 635ms 6.9ms 100.1MB 573ms 27ms dotnet 7.0.102
csharp 8.cs 1299ms 31ms 24.8MB 1287ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 2.nim 43ms 0.7ms 1.3MB 30ms 0ms nim 1.6.10
nim 2.nim 44ms 0.9ms 1.3MB 30ms 0ms nim/clang 1.6.10
csharp 8.cs 67ms 2.9ms 12.1MB 63ms 0ms dotnet/aot 7.0.102
csharp 9.cs 124ms 3.7ms 101.9MB 80ms 20ms dotnet 7.0.102
csharp 8.cs 139ms 1.0ms 102.0MB 93ms 20ms dotnet 7.0.102
csharp 8.cs 159ms 5.7ms 24.9MB 140ms 3ms mono 6.12.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 2.cs 659ms 5.1ms 21.7MB 647ms 0ms dotnet/aot 7.0.102
nim 2.nim 689ms 7.0ms 6.3MB 677ms 0ms nim/clang 1.6.10
csharp 2.cs 782ms 5.7ms 107.2MB 727ms 30ms dotnet 7.0.102
nim 2.nim 838ms 3.1ms 6.0MB 827ms 0ms nim 1.6.10
csharp 1.cs 941ms 20ms 71.8MB 917ms 20ms dotnet/aot 7.0.102
nim 1.nim 1031ms 44ms 40.6MB 1010ms 10ms nim 1.6.10
csharp 1.cs 1256ms 13ms 86.6MB 1213ms 30ms mono 6.12.0
nim 1.nim 1316ms 20ms 41.3MB 1290ms 10ms nim/clang 1.6.10
csharp 1.cs 1489ms 60ms 159.0MB 1407ms 57ms dotnet 7.0.102
csharp 2.cs 2819ms 24ms 34.0MB 2800ms 0ms mono 6.12.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 122ms 2.5ms 11.1MB 107ms 0ms nim 1.6.10
nim 1.nim 142ms 1.3ms 11.2MB 130ms 0ms nim/clang 1.6.10
csharp 1.cs 148ms 5.7ms 29.8MB 137ms 7ms dotnet/aot 7.0.102
nim 2.nim 154ms 1.1ms 3.3MB 140ms 0ms nim/clang 1.6.10
csharp 2.cs 154ms 1.2ms 15.4MB 150ms 0ms dotnet/aot 7.0.102
csharp 1.cs 198ms 1.1ms 42.8MB 177ms 3ms mono 6.12.0
nim 2.nim 198ms 0.5ms 3.1MB 183ms 0ms nim 1.6.10
csharp 2.cs 244ms 0.6ms 100.7MB 187ms 23ms dotnet 7.0.102
csharp 1.cs 356ms 7.8ms 117.0MB 297ms 30ms dotnet 7.0.102
csharp 2.cs 672ms 0.6ms 25.9MB 657ms 3ms mono 6.12.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 4777ms 8.2ms 57.3MB 4743ms 40ms dotnet/aot 7.0.102
csharp 1.cs 4893ms 9.0ms 155.4MB 4837ms 113ms dotnet 7.0.102
nim 1.nim timeout 0.0ms 5.8MB 4980ms 0ms nim 1.6.10
nim 1.nim timeout 0.0ms 5.8MB 4983ms 0ms nim/clang 1.6.10

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 1134ms 1.8ms 58.7MB 1107ms 23ms dotnet/aot 7.0.102
csharp 1.cs 1225ms 2.5ms 155.8MB 1200ms 57ms dotnet 7.0.102
nim 1.nim timeout 0.0ms 5.9MB 4987ms 0ms nim 1.6.10
nim 1.nim timeout 0.0ms 5.8MB 4983ms 3ms nim/clang 1.6.10

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 2436ms 0.3ms 167.9MB 2367ms 47ms nim/clang 1.6.10
nim 1.nim 2487ms 3.3ms 167.2MB 2417ms 50ms nim 1.6.10
csharp 5.cs 3174ms 7.1ms 598.3MB 3123ms 237ms dotnet 7.0.102
csharp 6.cs 3664ms 57ms 592.5MB 3513ms 227ms dotnet 7.0.102
csharp 6.cs 3692ms 7.2ms 457.6MB 3580ms 167ms dotnet/aot 7.0.102
csharp 5.cs timeout 0.0ms 184.1MB 4953ms 93ms dotnet/aot 7.0.102

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
nim 1.nim 249ms 1.1ms 17.1MB 237ms 0ms nim/clang 1.6.10
nim 1.nim 255ms 1.2ms 16.8MB 237ms 3ms nim 1.6.10
csharp 6.cs 387ms 3.2ms 69.5MB 353ms 33ms dotnet/aot 7.0.102
csharp 5.cs 481ms 3.9ms 168.2MB 393ms 67ms dotnet 7.0.102
csharp 6.cs 571ms 1.5ms 163.5MB 457ms 67ms dotnet 7.0.102
csharp 5.cs 699ms 2.1ms 70.3MB 663ms 30ms dotnet/aot 7.0.102

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 4232ms 13ms 58.0MB 4203ms 23ms dotnet/aot 7.0.102
csharp 1.cs 4378ms 49ms 152.1MB 4320ms 63ms dotnet 7.0.102

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 1086ms 4.7ms 57.8MB 1060ms 17ms dotnet/aot 7.0.102
csharp 1.cs 1267ms 45ms 147.0MB 1203ms 57ms dotnet 7.0.102

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 2157ms 59ms 13.7MB 4067ms 7ms dotnet/aot 7.0.102
nim 1.nim 3433ms 1.3ms 1.3MB 3420ms 0ms nim/clang 1.6.10
nim 1.nim 3434ms 1.2ms 1.3MB 3420ms 0ms nim 1.6.10
csharp 3-m.cs 4304ms 209ms 102.9MB 7280ms 33ms dotnet 7.0.102
csharp 3.cs timeout 0.0ms 27.0MB 9767ms 7ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 541ms 2.0ms 12.0MB 1027ms 3ms dotnet/aot 7.0.102
nim 1.nim 861ms 0.6ms 1.3MB 847ms 0ms nim 1.6.10
nim 1.nim 862ms 1.6ms 1.3MB 850ms 0ms nim/clang 1.6.10
csharp 3-m.cs 1131ms 2.6ms 102.5MB 2010ms 40ms dotnet 7.0.102
csharp 3-m.cs 2696ms 136ms 27.7MB 5060ms 17ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 152ms 2.5ms 12.3MB 267ms 3ms dotnet/aot 7.0.102
nim 1.nim 217ms 0.3ms 1.3MB 207ms 0ms nim/clang 1.6.10
nim 1.nim 218ms 0.4ms 1.3MB 207ms 0ms nim 1.6.10
csharp 3-m.cs 376ms 2.3ms 104.4MB 563ms 30ms dotnet 7.0.102
csharp 3-m.cs 686ms 9.6ms 27.8MB 1283ms 0ms mono 6.12.0