Puntos de referencia canónicos en varios idiomas

Esta página informa una ejecución local completa de la suite canónica benchLANG el 12 de julio de 2026. Las 19 implementaciones de lenguaje configuradas completaron las cinco cargas de trabajo con resultados válidos.

La suite se ejecutó en Linux 7.0.0 x86-64 con un AMD Ryzen 9 5900X (12 núcleos, 24 subprocesos) y 30 GiB de RAM. Cada idioma se compiló una vez y se ejecutó una vez. La máquina no estaba aislada, la frecuencia de su CPU no estaba bloqueada y había otra carga del sistema presente, por lo que estas mediciones son una instantánea reproducible, no una afirmación de clasificaciones estadísticamente estables.

Las cargas de trabajo canónicas son:

El tiempo de ejecución es el tiempo transcurrido interno de la carga de trabajo. El tiempo de compilación es el tiempo transcurrido para la compilación de la suite. LOC cuenta el archivo fuente completo para ese idioma. El RSS máximo se mide para el proceso completo del conjunto con /usr/bin/time -v, y el tamaño binario es el artefacto completo generado del conjunto. Debido a que las cinco cargas de trabajo comparten un archivo fuente, las métricas de compilación, LOC, RSS y binarias se repiten en cada tabla de cargas de trabajo. — significa que la ruta de ejecución interpretada, impulsada por JIT o de inicio del código fuente no produjo una fase de compilación medida por separado ni un binario independiente.

tamiz principal

Idioma Ejecución (es) compilar(es) LOC RSS pico binario
c 2.608 0,33 172 33,1 MB 28,3 KiB
Rust 2.609 2.69 142 33,3 MB 2,04 MB
nim 2.612 1.44 119 50,0 MB 52,1 KiB
Zig 2.612 4.23 180 32,9 MB 204,0 KiB
re 2.614 3.10 133 97,3 MB 1,13 MB
Java 2.615 — 127 561,8 MB —
fortran 2.616 0,59 233 33,6 MB 32,5 KiB
ada 2.617 0,98 224 34,8 MB 48,7 KiB
seed 2.622 0,84 218 33,2 MB 27,8 KiB
c# 2.630 4.37 129 116,9 MB 77,1 KiB
JavaScript (bollo) 2.649 — 108 342,8 MB —
JavaScript (nodo) 2.663 — 108 303,2 MB —
dardo 2.905 1.22 130 69,8 MB 6,45 MB
ir 3.054 2.83 157 52,9 MB 1,53 MB
OCaml 3.090 0,31 118 87,4 MB 1,86 MB
pascal 3.110 0,22 205 32,2 MB 548,3 KiB
PHP 3.198 — 127 179,2 MB —
Pitón (PyPy3) 3.297 — 127 376,5 MB —
Pitón (Python3) 60.688 — 127 153,1 MB —

Fibonacci recursivo

Idioma Ejecución (es) compilar(es) LOC RSS pico binario
nim 0.096 1.44 119 50,0 MB 52,1 KiB
fortran 1.682 0,59 233 33,6 MB 32,5 KiB
c 1.710 0,33 172 33,1 MB 28,3 KiB
ada 1.762 0,98 224 34,8 MB 48,7 KiB
seed 2.979 0,84 218 33,2 MB 27,8 KiB
Zig 3.074 4.23 180 32,9 MB 204,0 KiB
Rust 3.082 2.69 142 33,3 MB 2,04 MB
re 3.083 3.10 133 97,3 MB 1,13 MB
c# 3.323 4.37 129 116,9 MB 77,1 KiB
Java 3.974 — 127 561,8 MB —
OCaml 5.235 0,31 118 87,4 MB 1,86 MB
ir 5.584 2.83 157 52,9 MB 1,53 MB
pascal 5.709 0,22 205 32,2 MB 548,3 KiB
JavaScript (bollo) 7.489 — 108 342,8 MB —
dardo 7.850 1.22 130 69,8 MB 6,45 MB
JavaScript (nodo) 11.452 — 108 303,2 MB —
Pitón (PyPy3) 12.589 — 127 376,5 MB —
PHP 18.944 — 127 179,2 MB —
Pitón (Python3) 113.390 — 127 153,1 MB —

El resultado de Nim se informa exactamente como se midió, pero su tiempo fib(45) es una fuerte especialización del optimizador o una señal de plegado constante. No debe usarse como evidencia comparativa hasta que la carga de trabajo obtenga un aporte anti-plegamiento.

Procesamiento de cadenas

Idioma Ejecución (es) compilar(es) LOC RSS pico binario
Zig 1.448 4.23 180 32,9 MB 204,0 KiB
seed 1.513 0,84 218 33,2 MB 27,8 KiB
JavaScript (nodo) 1.812 — 108 303,2 MB —
Rust 2.105 2.69 142 33,3 MB 2,04 MB
c 2.124 0,33 172 33,1 MB 28,3 KiB
nim 2.188 1.44 119 50,0 MB 52,1 KiB
c# 2.228 4.37 129 116,9 MB 77,1 KiB
ada 2.310 0,98 224 34,8 MB 48,7 KiB
re 2.430 3.10 133 97,3 MB 1,13 MB
JavaScript (bollo) 2.742 — 108 342,8 MB —
ir 2.823 2.83 157 52,9 MB 1,53 MB
fortran 3.405 0,59 233 33,6 MB 32,5 KiB
Java 4.018 — 127 561,8 MB —
OCaml 4.093 0,31 118 87,4 MB 1,86 MB
Pitón (PyPy3) 4.896 — 127 376,5 MB —
dardo 5.871 1.22 130 69,8 MB 6,45 MB
PHP 7.251 — 127 179,2 MB —
pascal 12.094 0,22 205 32,2 MB 548,3 KiB
Pitón (Python3) 38.324 — 127 153,1 MB —

Mandelbrot

Idioma Ejecución (es) compilar(es) LOC RSS pico binario
nim 1.855 1.44 119 50,0 MB 52,1 KiB
ir 1.911 2.83 157 52,9 MB 1,53 MB
fortran 2.028 0,59 233 33,6 MB 32,5 KiB
ada 2.036 0,98 224 34,8 MB 48,7 KiB
c 2.103 0,33 172 33,1 MB 28,3 KiB
re 2.116 3.10 133 97,3 MB 1,13 MB
Rust 2.116 2.69 142 33,3 MB 2,04 MB
seed 2.119 0,84 218 33,2 MB 27,8 KiB
Zig 2.119 4.23 180 32,9 MB 204,0 KiB
c# 2.120 4.37 129 116,9 MB 77,1 KiB
dardo 2.166 1.22 130 69,8 MB 6,45 MB
Java 2.166 — 127 561,8 MB —
JavaScript (nodo) 2.167 — 108 303,2 MB —
OCaml 2.173 0,31 118 87,4 MB 1,86 MB
JavaScript (bollo) 2.177 — 108 342,8 MB —
pascal 2.179 0,22 205 32,2 MB 548,3 KiB
Pitón (PyPy3) 2.280 — 127 376,5 MB —
PHP 5.994 — 127 179,2 MB —
Pitón (Python3) 73.626 — 127 153,1 MB —

árboles binarios

Idioma Ejecución (es) compilar(es) LOC RSS pico binario
Java 0.550 — 127 561,8 MB —
OCaml 0.924 0,31 118 87,4 MB 1,86 MB
JavaScript (bollo) 0.930 — 108 342,8 MB —
nim 0.939 1.44 119 50,0 MB 52,1 KiB
dardo 0,959 1.22 130 69,8 MB 6,45 MB
c# 1.121 4.37 129 116,9 MB 77,1 KiB
JavaScript (nodo) 1.223 — 108 303,2 MB —
seed 1.263 0,84 218 33,2 MB 27,8 KiB
pascal 1.560 0,22 205 32,2 MB 548,3 KiB
fortran 1.600 0,59 233 33,6 MB 32,5 KiB
c 1.626 0,33 172 33,1 MB 28,3 KiB
ada 1.795 0,98 224 34,8 MB 48,7 KiB
Zig 1.943 4.23 180 32,9 MB 204,0 KiB
ir 1.951 2.83 157 52,9 MB 1,53 MB
Rust 2.233 2.69 142 33,3 MB 2,04 MB
re 3.352 3.10 133 97,3 MB 1,13 MB
Pitón (PyPy3) 5.801 — 127 376,5 MB —
PHP 6.796 — 127 179,2 MB —
Pitón (Python3) 16.851 — 127 153,1 MB —

suite completa

El tiempo de la suite completa es la suma reportada por cada implementación para las cinco cargas de trabajo. Se incluye como descripción general; Las tablas de carga de trabajo anteriores siguen siendo la comparación principal.

Idioma Ejecución (es) compilar(es) LOC RSS pico binario
nim 7.698 1.44 119 50,0 MB 52,1 KiB
c 10.171 0,33 172 33,1 MB 28,3 KiB
seed 10.496 0,84 218 33,2 MB 27,8 KiB
ada 10.521 0,98 224 34,8 MB 48,7 KiB
Zig 11.194 4.23 180 32,9 MB 204,0 KiB
fortran 11.331 0,59 233 33,6 MB 32,5 KiB
c# 11.424 4.37 129 116,9 MB 77,1 KiB
Rust 12.146 2.69 142 33,3 MB 2,04 MB
Java 13.331 — 127 561,8 MB —
re 13.595 3.10 133 97,3 MB 1,13 MB
ir 15.322 2.83 157 52,9 MB 1,53 MB
OCaml 15.515 0,31 118 87,4 MB 1,86 MB
JavaScript (bollo) 15.989 — 108 342,8 MB —
JavaScript (nodo) 19.319 — 108 303,2 MB —
dardo 19.752 1.22 130 69,8 MB 6,45 MB
pascal 24.652 0,22 205 32,2 MB 548,3 KiB
Pitón (PyPy3) 28.863 — 127 376,5 MB —
PHP 42.224 — 127 179,2 MB —
Pitón (Python3) 302.933 — 127 153,1 MB —

el seed El archivo de corpus se reescribió posteriormente (2026-10-15) en el idioma de superficie actual (if let/while let, [0 as usize; 32], text.split_ascii + SplitToken.slice, temprano return, expr; declaraciones), que cambia la seed solo fila: 173 loc, y en el mismo host Ryzen 9 5900X una repetición midió 8.384s tiempo de conjunto completo, 0.76s compilar, 58.3 KiB binario, 33.0 MiB RSS máximo con sumas de verificación sin cambios. Una entrada de C++ (g++ -std=c++23 -O3 -march=native -flto) se añadió al arnés en el mismo cambio y midió 7.605s, 159 loc, 1.44s compilar, 53.8 KiB, 35.7 MiB en ese host. Ambas son observaciones de una sola ejecución en una máquina no aislada; Las tablas anteriores siguen siendo la instantánea del 2026-07-12 que describen.

Reproducción

La ejecución completa utilizó:

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

Las correcciones de caché de la cadena de herramientas locales fueron seguidas por reejecuciones específicas para Zig, Go, Nim, C# y Dart. Las tablas combinan solo el último resultado exitoso para cada idioma.