Un nuevo proyecto de código abierto alojado en GitHub, denominado 'related_post_gen', ha publicado resultados de rendimiento comparativos para múltiples lenguajes de programación en una tarea específica de procesamiento de datos. El objetivo del benchmark es determinar la velocidad de ejecución al identificar las cinco publicaciones más relacionadas basadas en la superposición de etiquetas, escalando hasta 60,000 entradas de datos.
La metodología de la prueba requiere que cada lenguaje implemente un algoritmo exacto que primero mapea etiquetas a índices de publicaciones y luego calcula las puntuaciones de similitud por conteo de etiquetas compartidas. El proyecto especifica reglas estrictas para la implementación, incluyendo la prohibición de la evaluación perezosa y la exigencia de que el código sea listo para producción, con un límite de memoria de 8GB.
Los datos iniciales presentados en el repositorio, obtenidos en configuraciones monohilo, sitúan a D (v2) y Rust entre los más rápidos para la carga de 60,000 publicaciones, con tiempos de procesamiento que rondan los 1.2 segundos. Lenguajes como C++, Zig y Go también muestran tiempos competitivos en el rango de 1.5 a 2.4 segundos para el mismo volumen de datos.
Se observa una marcada diferencia de rendimiento cuando se compara con lenguajes interpretados o con máquinas virtuales, como Python, Ruby o Erlang, que registraron tiempos totales que superaron los 100 segundos para el conjunto de datos más grande. Esta disparidad subraya la ventaja de los lenguajes que permiten optimizaciones de bajo nivel como el uso de SIMD o la gestión directa de memoria.
El repositorio también detalla la evolución del rendimiento de lenguajes específicos a través de versiones iterativas, como en el caso de Rust, que mejoró drásticamente su tiempo de ejecución inicial de 4.5 segundos a solo 36 milisegundos en su versión v6. Esto ilustra cómo las decisiones algorítmicas específicas, como el cambio de estructuras de datos, impactan significativamente la eficiencia final.
Además de las pruebas monohilo, el proyecto incluye métricas para implementaciones concurrentes, donde Rust, C# (AOT) y D Concurrent mantienen una ventaja notable sobre Go y Swift. Esta información es valiosa para ingenieros que evalúan la idoneidad de distintos lenguajes para sistemas de recomendación o análisis de grafos a gran escala.
El mantenedor del proyecto, accesible a través de la cuenta 'zupat' en GitHub, facilita la ejecución de las pruebas mediante scripts de shell, PowerShell y Docker, asegurando una replicabilidad consistente en diversos entornos de desarrollo. La comunidad técnica podrá utilizar estos hallazgos para informar futuras decisiones de arquitectura de software.