Análisis técnico explica la brecha de rendimiento entre Wild y Mold

Fuentes: Technical analysis explains performance gap between Wild and Mold

El equipo de Wild ha publicado un análisis técnico para explicar la discrepancia en los resultados de rendimiento entre su propio linker y Mold, tras la inclusión de Wild en los benchmarks de Mold. Aunque Wild ha mejorado significativamente su velocidad en las últimas actualizaciones, los benchmarks recientes de Mold muestran que Wild sigue siendo considerablemente más lento, especialmente en arquitecturas de alto rendimiento como el Threadripper.

El análisis identifica tres factores técnicos clave que influyen en estas diferencias. Primero, la configuración de los archivos de salida: Mold elimina el archivo de salida entre ejecuciones y utiliza el sistema de archivos ext4, mientras que Wild históricamente operaba en tmpfs, lo que generaba menos ruido pero no era representativo para usuarios reales. Segundo, el uso de --no-fork: Mold fuerza esta opción para reducir costes de cierre, mientras que Wild la usa solo para medir consumo de memoria. Tercero, las optimizaciones específicas del sistema operativo: Mold utiliza fallocate y hugepages para pre-allocar espacio, optimizaciones que Wild está implementando en su próxima versión.

Al reproducir los benchmarks de Mold en una máquina Ryzen 9955hx, los resultados se alinean con los de Mold, confirmando que la brecha principal no es de hardware, sino de configuración. Sin embargo, en el Threadripper, la diferencia persiste, posiblemente debido a que Wild escala mejor con más hilos (128 vs 32) en arquitecturas de 16 núcleos, mientras que Mold se beneficia de su paralelismo masivo en sistemas de 64 núcleos.