Benchmarks canônicos entre idiomas

Esta página relata uma execução local completa do conjunto canônico benchLANG em 12/07/2026. Todas as 19 implementações de linguagem configuradas concluíram todas as cinco cargas de trabalho com resultados válidos.

O conjunto foi executado em Linux 7.0.0 x86-64 com um AMD Ryzen 9 5900X (12 núcleos, 24 threads) e 30 GiB de RAM. Cada linguagem foi compilada uma vez e executada uma vez. A máquina não estava isolada, a frequência da CPU não estava bloqueada e outras cargas do sistema estavam presentes, portanto, essas medições são um instantâneo reproduzível e não uma reivindicação de classificações estatisticamente estáveis.

As cargas de trabalho canônicas são:

O tempo de execução é o tempo decorrido interno da carga de trabalho. O tempo de compilação é o tempo decorrido para a construção do conjunto. LOC conta o arquivo fonte completo para aquele idioma. O pico de RSS é medido para o processo completo do conjunto com /usr/bin/time -v, e o tamanho binário é o artefato completo do conjunto gerado. Como todas as cinco cargas de trabalho compartilham um arquivo de origem, as métricas de build, LOC, RSS e binárias se repetem em cada tabela de carga de trabalho. significa que o caminho de inicialização de origem, orientado por JIT ou interpretado não produziu uma fase de compilação medida separadamente ou um binário independente.

Peneira principal

Idioma Execução(ões) Compilar(ões) LOC Pico de RSS Binário
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 MB 52,1 KB
Ziguezague 2.612 4.23 180 32,9 MiB 204,0 KB
D 2.614 3.10 133 97,3 MiB 1,13 MiB
Java 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 KB
JavaScript (Pão) 2.649 - 108 342,8 MiB -
JavaScript (nó) 2.663 - 108 303,2 MiB -
Dardo 2.905 1.22 130 69,8 MiB 6,45 MB
3.054 2,83 157 52,9 MiB 1,53 MB
OCaml 3.090 0,31 118 87,4 MiB 1,86 MB
Pascal 3.110 0,22 205 32,2 MiB 548,3 KB
PHP 3.198 - 127 179,2 MiB -
Python (PyPy3) 3.297 - 127 376,5 MiB -
Python (Python3) 60.688 - 127 153,1 MiB -

Fibonacci recursivo

Idioma Execução(ões) Compilar(ões) LOC Pico de RSS Binário
Nim 0,096 1,44 119 50,0 MB 52,1 KB
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
Ziguezague 3.074 4.23 180 32,9 MiB 204,0 KB
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 KB
Java 3.974 - 127 561,8 MiB -
OCaml 5.235 0,31 118 87,4 MiB 1,86 MB
5.584 2,83 157 52,9 MiB 1,53 MB
Pascal 5.709 0,22 205 32,2 MiB 548,3 KB
JavaScript (Pão) 7.489 - 108 342,8 MiB -
Dardo 7.850 1.22 130 69,8 MiB 6,45 MB
JavaScript (nó) 11.452 - 108 303,2 MiB -
Python (PyPy3) 12.589 - 127 376,5 MiB -
PHP 18.944 - 127 179,2 MiB -
Python (Python3) 113.390 - 127 153,1 MiB -

O resultado do Nim é relatado exatamente como medido, mas seu tempo fib(45) é uma forte especialização do otimizador ou sinal de dobramento constante. Não deve ser usado como evidência comparativa até que a carga de trabalho ganhe uma contribuição anti-dobramento.

Processamento de strings

Idioma Execução(ões) Compilar(ões) LOC Pico de RSS Binário
Ziguezague 1.448 4.23 180 32,9 MiB 204,0 KB
seed 1.513 0,84 218 33,2 MiB 27,8 KiB
JavaScript (nó) 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 MB 52,1 KB
C# 2.228 4,37 129 116,9 MiB 77,1 KB
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 (Pão) 2.742 - 108 342,8 MiB -
2.823 2,83 157 52,9 MiB 1,53 MB
Fortran 3.405 0,59 233 33,6 MiB 32,5 KiB
Java 4.018 - 127 561,8 MiB -
OCaml 4.093 0,31 118 87,4 MiB 1,86 MB
Python (PyPy3) 4.896 - 127 376,5 MiB -
Dardo 5.871 1.22 130 69,8 MiB 6,45 MB
PHP 7.251 - 127 179,2 MiB -
Pascal 12.094 0,22 205 32,2 MiB 548,3 KB
Python (Python3) 38.324 - 127 153,1 MiB -

Mandelbrot

Idioma Execução(ões) Compilar(ões) LOC Pico de RSS Binário
Nim 1.855 1,44 119 50,0 MB 52,1 KB
1.911 2,83 157 52,9 MiB 1,53 MB
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
Ziguezague 2.119 4.23 180 32,9 MiB 204,0 KB
C# 2.120 4,37 129 116,9 MiB 77,1 KB
Dardo 2.166 1.22 130 69,8 MiB 6,45 MB
Java 2.166 - 127 561,8 MiB -
JavaScript (nó) 2.167 - 108 303,2 MiB -
OCaml 2.173 0,31 118 87,4 MiB 1,86 MB
JavaScript (Pão) 2.177 - 108 342,8 MiB -
Pascal 2.179 0,22 205 32,2 MiB 548,3 KB
Python (PyPy3) 2.280 - 127 376,5 MiB -
PHP 5.994 - 127 179,2 MiB -
Python (Python3) 73.626 - 127 153,1 MiB -

Árvores binárias

Idioma Execução(ões) Compilar(ões) LOC Pico de RSS Binário
Java 0,550 - 127 561,8 MiB -
OCaml 0,924 0,31 118 87,4 MiB 1,86 MB
JavaScript (Pão) 0,930 - 108 342,8 MiB -
Nim 0,939 1,44 119 50,0 MB 52,1 KB
Dardo 0,959 1.22 130 69,8 MiB 6,45 MB
C# 1.121 4,37 129 116,9 MiB 77,1 KB
JavaScript (nó) 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 KB
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
Ziguezague 1.943 4.23 180 32,9 MiB 204,0 KB
1.951 2,83 157 52,9 MiB 1,53 MB
Rust 2.233 2,69 142 33,3 MiB 2,04 MiB
D 3.352 3.10 133 97,3 MiB 1,13 MiB
Python (PyPy3) 5.801 - 127 376,5 MiB -
PHP 6.796 - 127 179,2 MiB -
Python (Python3) 16.851 - 127 153,1 MiB -

Suíte completa

O tempo do pacote completo é a soma relatada por cada implementação para todas as cinco cargas de trabalho. Está incluído como uma visão geral; as tabelas de carga de trabalho acima continuam sendo a comparação principal.

Idioma Execução(ões) Compilar(ões) LOC Pico de RSS Binário
Nim 7.698 1,44 119 50,0 MB 52,1 KB
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
Ziguezague 11.194 4.23 180 32,9 MiB 204,0 KB
Fortran 11.331 0,59 233 33,6 MiB 32,5 KiB
C# 11.424 4,37 129 116,9 MiB 77,1 KB
Rust 12.146 2,69 142 33,3 MiB 2,04 MiB
Java 13.331 - 127 561,8 MiB -
D 13.595 3.10 133 97,3 MiB 1,13 MiB
15.322 2,83 157 52,9 MiB 1,53 MB
OCaml 15.515 0,31 118 87,4 MiB 1,86 MB
JavaScript (Pão) 15.989 - 108 342,8 MiB -
JavaScript (nó) 19.319 - 108 303,2 MiB -
Dardo 19.752 1.22 130 69,8 MiB 6,45 MB
Pascal 24.652 0,22 205 32,2 MiB 548,3 KB
Python (PyPy3) 28.863 - 127 376,5 MiB -
PHP 42.224 - 127 179,2 MiB -
Python (Python3) 302.933 - 127 153,1 MiB -

Reprodução

A execução completa usada:

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

As correções de cache do conjunto de ferramentas local foram seguidas por repetições direcionadas para Zig, Go, Nim, C# e Dart. As tabelas mesclam apenas o último resultado bem-sucedido para cada idioma.