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:
- tamiz primario hasta 20.000.000;
- Fibonacci recursivo en
fib(45); - 5.000.000 de iteraciones de procesamiento de cadenas;
- Mandelbrot a 4096 x 4096 con como máximo 256 iteraciones por píxel;
- árboles binarios desde la profundidad 4 hasta la profundidad 18.
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 del conjunto completo 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 | — |
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.