Cuando los compiladores discrepan sobre UTF-8

When Compilers Disagree About UTF‑8

Cuando los compiladores discrepan sobre UTF-8

En 2006, Nemanja Trifunovic lanzó una biblioteca C++ de código abierto para manejar cadenas UTF-8. Recientemente, al optimizar el decodificador, descubrió que clang 18.1.3 triplicaba el rendimiento para texto ASCII puro, mientras que gcc no mostraba ninguna mejora. Al examinar el ensamblador, encontró que gcc ya eliminaba las comprobaciones de validez en el caso ASCII, pero clang no. Finalmente, una optimización más amplia que integraba la validación en las funciones de secuencia logró mejoras en ambos compiladores, con un aumento del 15-20% en gcc para texto mixto.

Los compiladores nunca dejan de sorprenderme: esta vez no hubo ninguna diferencia para el texto ASCII. ¡Cero!

Más de este día

2026-08-09