1.7.5vB_Snapshot
Altair 1.7.5vB
🚀 Nueva versión de Altair — optimizaciones importantes
Altair 1.7.5vB introduce una nueva generación de optimizaciones en el compilador y runtime, mejorando considerablemente el rendimiento en varias cargas de trabajo.
⚠️ Aviso: esta versión todavía está en proceso de estabilización. Estamos teniendo algunos problemas de compatibilidad y empaquetado en algunas plataformas. Los solucionaremos próximamente.
📦 Disponibilidad
Actualmente disponible:
- 🪟 Windows —
.exe - 🍎 macOS —
.pkg - 🐧 Linux — próximamente
La versión para Linux está temporalmente retrasada debido a problemas detectados durante el proceso de empaquetado. Estamos trabajando para solucionarlos y esperamos ofrecerla próximamente.
⚠️ Instalación en Windows
Durante la instalación del .exe, puede parecer que el proceso se queda detenido al llegar al paso de eliminación de MinGW64.
En ese momento:
- Abre el Administrador de tareas (
Ctrl + Shift + Esc). - Busca el proceso Altair Set Up.
- Finaliza la tarea.
- Altair ya estará instalado y listo para utilizarse.
⚡ Mejoras
Compilador y runtime
- ⚡ Importantes optimizaciones del código generado.
- ⚡ Mejor rendimiento en operaciones numéricas.
- ⚡ Mejor rendimiento en llamadas a funciones.
- ⚡ Mejoras en operaciones bitwise.
- ⚡ Mejoras en concatenación de strings.
- ⚡ Mejoras en operaciones de entrada/salida.
- 🔢 Conservación de precisión en literales numéricos.
- 🧠 Mejoras en el frontend y generación del AST.
- 💾 Runtime extremadamente ligero.
- ✅ Mantiene la compatibilidad con las cargas existentes del benchmark.
📊 Benchmark
Benchmark realizado sobre Altair 1.7.5vB, con 3 ejecuciones medidas + 1 de calentamiento.
| Carga | Compilación mediana | Ejecución mediana | Ejecución p95 | RSS pico |
|---|---|---|---|---|
numeric_loop |
1540.633 ms | 2.757 ms | 2.974 ms | 148 KB |
function_calls |
1642.815 ms | 2.731 ms | 3.551 ms | 144 KB |
recursion_fib |
1574.723 ms | 4.029 ms | 12.1 ms | 1636 KB |
list_append_index |
1544.376 ms | 23.008 ms | 24.753 ms | 15120 KB |
bitwise_loop |
1501.680 ms | 2.628 ms | 2.677 ms | 156 KB |
string_concat |
1494.690 ms | 2.479 ms | 2.482 ms | 156 KB |
file_io |
1368.273 ms | 2.478 ms | 2.483 ms | 144 KB |
numeric_literal_precision |
1339.361 ms | 2.501 ms | 2.595 ms | 156 KB |
Comparación con C y Python
| Carga | C mediana | Python mediana | Altair vB |
|---|---|---|---|
numeric_loop |
2.484 ms | 48.619 ms | 2.757 ms |
recursion_fib |
2.638 ms | 70.075 ms | 4.029 ms |
En numeric_loop, Altair vB queda aproximadamente 11 % por encima de C en esta medición y es aproximadamente 17,6× más rápido que Python.
🧪 Correctitud
8/8 cargas del benchmark pasan correctamente.
También pasan las pruebas de:
hellogame_compile_and_rundatabockpersistpointer2
🔬 Escalabilidad del frontend
Pruebas realizadas con --emit-ast:
| Sentencias | Líneas | Mediana | RSS pico |
|---|---|---|---|
| 10 | 20 | 2.510 ms | 144 KB |
| 50 | 60 | 4.637 ms | 4876 KB |
| 100 | 110 | 8.982 ms | 10100 KB |
Todas las pruebas pasan correctamente.
📊 Benchmarks adicionales
Para consultar benchmarks ejecutados con agentes/procesos y benchmarks ejecutados sin agentes/procesos, visita:
https://github.com/victios7/Altair/tree/main/benchmark
Dentro de la carpeta benchmark encontrarás:
- El archivo
.pyutilizado para ejecutar los benchmarks. latest2.mdylatest2.jsoncon los resultados de los benchmarks con agentes/procesos.latest.mdylatest.jsoncon los resultados de los benchmarks sin agentes/procesos.
Los archivos .md permiten consultar los resultados de forma legible, mientras que los .json contienen los datos en formato estructurado para realizar comparativas o análisis adicionales.
🔮 Próximamente
Estamos trabajando actualmente en:
- 🐧 Soporte para Linux.
- 🔧 Corrección de problemas de empaquetado.
- 🛠️ Corrección de problemas de portabilidad.
- 📦 Mejoras del proceso de instalación.
- 🧪 Más pruebas antes de declarar la versión completamente estable.
Gracias por probar Altair 1.7.5vB. Esta versión supone un paso importante en el rendimiento del compilador y seguiremos trabajando para llevar estas mejoras a todas las plataformas.