Benchmark canonici tra lingue diverse

Questa pagina riporta un'esecuzione locale completa della suite canonica benchLANG il 12-07-2026. Tutte le 19 implementazioni linguistiche configurate hanno completato tutti e cinque i carichi di lavoro con risultati validi.

La suite è stata eseguita su Linux 7.0.0 x86-64 con un AMD Ryzen 9 5900X (12 core, 24 thread) e 30 GiB di RAM. Ogni lingua è stata compilata una volta ed eseguita una volta. La macchina non era isolata, la frequenza della CPU non era bloccata ed era presente altro carico di sistema, quindi queste misurazioni sono un'istantanea riproducibile, non una pretesa di classifiche statisticamente stabili.

I carichi di lavoro canonici sono:

Il tempo di esecuzione è il tempo trascorso interno del carico di lavoro. Il tempo di compilazione è il tempo trascorso per la compilazione della suite. LOC conta il file sorgente completo per quella lingua. Il picco RSS viene misurato per l'intero processo della suite con /usr/bin/time -ve la dimensione binaria è l'artefatto della suite generato completo. Poiché tutti e cinque i carichi di lavoro condividono un file di origine, i parametri build, LOC, RSS e binari si ripetono in ogni tabella del carico di lavoro. significa che il percorso di esecuzione di avvio del codice sorgente, guidato da JIT o interpretato non ha prodotto una fase di compilazione misurata separatamente o un file binario autonomo.

Setaccio primo

Lingua Esecuzione/i Compila/i LOC Picco RSS Binario
C 2.608 0,33 172 33,1 MiB 28,3 KiB
Rust 2.609 2.69 142 33,3 MiB 2,04 MiB
Nim 2.612 1.44 119 50,0 MiB 52,1 KiB
Zig 2.612 4.23 180 32,9 MiB 204,0 KiB
D 2.614 3.10 133 97,3 MiB 1,13 MiB
Giava 2.615 127 561,8 MiB
Fortran 2.616 0,59 233 33,6 MiB 32,5 KiB
Ada 2.617 0,98 224 34,8 MiB 48,7 KiB
seed 2.622 0,84 218 33,2 MiB 27,8 KiB
C# 2.630 4.37 129 116,9 MiB 77,1 KiB
JavaScript (panino) 2.649 108 342,8 MiB
JavaScript (nodo) 2.663 108 303,2 MiB
Dardo 2.905 1.22 130 69,8 MiB 6,45 MiB
Vai 3.054 2.83 157 52,9 MiB 1,53 MiB
OCaml 3.090 0,31 118 87,4 MiB 1,86 MiB
Pascal 3.110 0,22 205 32,2 MiB 548,3 KiB
PHP 3.198 127 179,2 MiB
Pitone (PyPy3) 3.297 127 376,5 MiB
Pitone (Python3) 60.688 127 153,1 MiB

Fibonacci ricorsivo

Lingua Esecuzione/i Compila/i LOC Picco RSS Binario
Nim 0,096 1.44 119 50,0 MiB 52,1 KiB
Fortran 1.682 0,59 233 33,6 MiB 32,5 KiB
C 1.710 0,33 172 33,1 MiB 28,3 KiB
Ada 1.762 0,98 224 34,8 MiB 48,7 KiB
seed 2.979 0,84 218 33,2 MiB 27,8 KiB
Zig 3.074 4.23 180 32,9 MiB 204,0 KiB
Rust 3.082 2.69 142 33,3 MiB 2,04 MiB
D 3.083 3.10 133 97,3 MiB 1,13 MiB
C# 3.323 4.37 129 116,9 MiB 77,1 KiB
Giava 3.974 127 561,8 MiB
OCaml 5.235 0,31 118 87,4 MiB 1,86 MiB
Vai 5.584 2.83 157 52,9 MiB 1,53 MiB
Pascal 5.709 0,22 205 32,2 MiB 548,3 KiB
JavaScript (panino) 7.489 108 342,8 MiB
Dardo 7.850 1.22 130 69,8 MiB 6,45 MiB
JavaScript (nodo) 11.452 108 303,2 MiB
Pitone (PyPy3) 12.589 127 376,5 MiB
PHP 18.944 127 179,2 MiB
Pitone (Python3) 113.390 127 153,1 MiB

Il risultato Nim viene riportato esattamente come misurato, ma il suo tempo fib(45) è un forte segnale di specializzazione dell'ottimizzatore o di ripiegamento costante. Non dovrebbe essere utilizzato come prova comparativa finché il carico di lavoro non acquisisce un input anti-folding.

Elaborazione di stringhe

Lingua Esecuzione/i Compila/i LOC Picco RSS Binario
Zig 1.448 4.23 180 32,9 MiB 204,0 KiB
seed 1.513 0,84 218 33,2 MiB 27,8 KiB
JavaScript (nodo) 1.812 108 303,2 MiB
Rust 2.105 2.69 142 33,3 MiB 2,04 MiB
C 2.124 0,33 172 33,1 MiB 28,3 KiB
Nim 2.188 1.44 119 50,0 MiB 52,1 KiB
C# 2.228 4.37 129 116,9 MiB 77,1 KiB
Ada 2.310 0,98 224 34,8 MiB 48,7 KiB
D 2.430 3.10 133 97,3 MiB 1,13 MiB
JavaScript (panino) 2.742 108 342,8 MiB
Vai 2.823 2.83 157 52,9 MiB 1,53 MiB
Fortran 3.405 0,59 233 33,6 MiB 32,5 KiB
Giava 4.018 127 561,8 MiB
OCaml 4.093 0,31 118 87,4 MiB 1,86 MiB
Pitone (PyPy3) 4.896 127 376,5 MiB
Dardo 5.871 1.22 130 69,8 MiB 6,45 MiB
PHP 7.251 127 179,2 MiB
Pascal 12.094 0,22 205 32,2 MiB 548,3 KiB
Pitone (Python3) 38.324 127 153,1 MiB

Mandelbrot

Lingua Esecuzione/i Compila/i LOC Picco RSS Binario
Nim 1.855 1.44 119 50,0 MiB 52,1 KiB
Vai 1.911 2.83 157 52,9 MiB 1,53 MiB
Fortran 2.028 0,59 233 33,6 MiB 32,5 KiB
Ada 2.036 0,98 224 34,8 MiB 48,7 KiB
C 2.103 0,33 172 33,1 MiB 28,3 KiB
D 2.116 3.10 133 97,3 MiB 1,13 MiB
Rust 2.116 2.69 142 33,3 MiB 2,04 MiB
seed 2.119 0,84 218 33,2 MiB 27,8 KiB
Zig 2.119 4.23 180 32,9 MiB 204,0 KiB
C# 2.120 4.37 129 116,9 MiB 77,1 KiB
Dardo 2.166 1.22 130 69,8 MiB 6,45 MiB
Giava 2.166 127 561,8 MiB
JavaScript (nodo) 2.167 108 303,2 MiB
OCaml 2.173 0,31 118 87,4 MiB 1,86 MiB
JavaScript (panino) 2.177 108 342,8 MiB
Pascal 2.179 0,22 205 32,2 MiB 548,3 KiB
Pitone (PyPy3) 2.280 127 376,5 MiB
PHP 5.994 127 179,2 MiB
Pitone (Python3) 73.626 127 153,1 MiB

Alberi binari

Lingua Esecuzione/i Compila/i LOC Picco RSS Binario
Giava 0,550 127 561,8 MiB
OCaml 0,924 0,31 118 87,4 MiB 1,86 MiB
JavaScript (panino) 0,930 108 342,8 MiB
Nim 0,939 1.44 119 50,0 MiB 52,1 KiB
Dardo 0,959 1.22 130 69,8 MiB 6,45 MiB
C# 1.121 4.37 129 116,9 MiB 77,1 KiB
JavaScript (nodo) 1.223 108 303,2 MiB
seed 1.263 0,84 218 33,2 MiB 27,8 KiB
Pascal 1.560 0,22 205 32,2 MiB 548,3 KiB
Fortran 1.600 0,59 233 33,6 MiB 32,5 KiB
C 1.626 0,33 172 33,1 MiB 28,3 KiB
Ada 1.795 0,98 224 34,8 MiB 48,7 KiB
Zig 1.943 4.23 180 32,9 MiB 204,0 KiB
Vai 1.951 2.83 157 52,9 MiB 1,53 MiB
Rust 2.233 2.69 142 33,3 MiB 2,04 MiB
D 3.352 3.10 133 97,3 MiB 1,13 MiB
Pitone (PyPy3) 5.801 127 376,5 MiB
PHP 6.796 127 179,2 MiB
Pitone (Python3) 16.851 127 153,1 MiB

Suite completa

Il tempo completo della suite è la somma riportata da ciascuna implementazione per tutti e cinque i carichi di lavoro. È incluso come panoramica; le tabelle del carico di lavoro riportate sopra rimangono il confronto principale.

Lingua Esecuzione/i Compila/i LOC Picco RSS Binario
Nim 7.698 1.44 119 50,0 MiB 52,1 KiB
C 10.171 0,33 172 33,1 MiB 28,3 KiB
seed 10.496 0,84 218 33,2 MiB 27,8 KiB
Ada 10.521 0,98 224 34,8 MiB 48,7 KiB
Zig 11.194 4.23 180 32,9 MiB 204,0 KiB
Fortran 11.331 0,59 233 33,6 MiB 32,5 KiB
C# 11.424 4.37 129 116,9 MiB 77,1 KiB
Rust 12.146 2.69 142 33,3 MiB 2,04 MiB
Giava 13.331 127 561,8 MiB
D 13.595 3.10 133 97,3 MiB 1,13 MiB
Vai 15.322 2.83 157 52,9 MiB 1,53 MiB
OCaml 15.515 0,31 118 87,4 MiB 1,86 MiB
JavaScript (panino) 15.989 108 342,8 MiB
JavaScript (nodo) 19.319 108 303,2 MiB
Dardo 19.752 1.22 130 69,8 MiB 6,45 MiB
Pascal 24.652 0,22 205 32,2 MiB 548,3 KiB
Pitone (PyPy3) 28.863 127 376,5 MiB
PHP 42.224 127 179,2 MiB
Pitone (Python3) 302.933 127 153,1 MiB

Riproduzione

La corsa completa utilizzata:

cd benchLANG
./run_benchmarks.sh --runs 1 --timeout 600

Le correzioni della cache della toolchain locale sono state seguite da repliche mirate per Zig, Go, Nim, C# e Dart. Le tabelle uniscono solo gli ultimi risultati positivi per ciascuna lingua.