Con el propagación estable de ayer del compilador LLVM Clang 22, los lectores de Phoronix no tardaron en comenzar a preguntar sobre el rendimiento de esta modernización de funciones de medio año para este destacado compilador C/C++ de código amplio. Lo que estoy viendo hasta ahora no es una gran sorpresa, ya que el rendimiento es en gran medida similar al de Clang 21 en varias cargas de trabajo de código amplio C/C++ en las pruebas hasta el momento. Esta ronda auténtico de resultados de pruebas comparativas de remisión entre LLVM Clang 22, Clang 21 y Clang 20 se realizó en un servidor Linux AMD EPYC Turin (Zen 5).
Hasta ahora no he conocido ninguna sorpresa en la evaluación comparativa del compilador Clang 22.1 en hardware x86_64. Probé algunos sistemas Intel y AMD sin cambios importantes. La mayoría de las pruebas se realizaron hasta el momento desde un servidor AMD EPYC 9655P dada su velocidad con 96 núcleos Zen 5 y doce canales de memoria DDR5. Entonces, este artículo tiene esos resultados comparando el nuevo Clang 22.1.0 con las versiones Clang 21.1.8 y Clang 20.1.8 existentes. Una vez más, no hay grandes sorpresas. En algunas cargas de trabajo hubo algunas ganancias incrementales, pero nadie demasiado extremo como el que encontramos en las versiones de LLVM/Clang hace primaveras.
Hoy en día, el rendimiento de LLVM/Clang x86_64 de los binarios resultantes está en gran medida en estría con el del compilador GCC. Rendimiento saludable codo a codo entre los dos con algunas excepciones, pero párrafo de cuando se manejo de reconocer nuevas instrucciones de CPU o la nueva optimización ocasional u otras mejoras de programación específicas de objetivos y similares, el rendimiento de LLVM/Clang ha parecido en gran medida estabilizarse en versiones recientes. Pero es bueno que a lo generoso de los primaveras se haya puesto al día para ser un contendiente viable en todos los aspectos de GCC, no sólo por el rendimiento de los binarios resultantes sino todavía cuando se manejo de construir bases de código complejas como el kernel de Linux y otros proyectos. Todo el software C/C++ de código amplio bajo prueba se creó mientras los CFLAGS/CXXFLAGS estaban configurados en “-march=native -O3 -flto”.
