
punkmetal-vs-others
El mismo programa escrito once veces, en once lenguajes, para medir cuál tarda menos.
- Estado
- Anda
- Desarrollo
- 42 h
Un banco de pruebas que compara once lenguajes sobre el mismo problema. El mismo algoritmo está escrito once veces, una por lenguaje, y se corre en las mismas condiciones.
Mide a dos de los lenguajes de esta página, Punk y metaltoy, así que no puede vivir adentro de ninguno de los dos.
Funcionalidades
Los once
- Propios: Punk, que traduce a C, y metaltoy, que compila a ARM64 y ejecuta en memoria.
- Compilados: C, C++, Rust, Go, Zig y Swift.
- Interpretados: Python, Julia y R.
- Si falta un compilador, ese lenguaje se salta con un aviso y la corrida sigue con los otros.
Las pruebas
- Las categorías van de lo numérico a las cadenas, las colecciones, el control, los recorridos, FASTA, coordenadas celestes, el lenguaje y lo visual.
- Se elige la categoría, la prueba, cuántas corridas y qué lenguajes entran.
- Los datos grandes se regeneran. Un FASTA sintético y un corpus de texto.
Los resultados
- Medir dos lenguajes deja intactos los resultados de los demás.
- Los resultados versionados son la serie histórica. Un programa la recorre por el historial de git y dibuja la evolución de metaltoy en el tiempo.
- Las tablas guardadas sirven de referencia. Una medición que se aparta de ellas hay que explicarla.
- Las gráficas de barras se regeneran a partir de los resultados.
Cómo se mide
- La máquina deriva sola. Dos corridas seguidas del mismo binario pueden diferir bastante.
- Antes de creerle a una diferencia van el calentamiento y varias repeticiones.