Saltar al contenido principal
La optimización guiada por perfiles (PGO) es una técnica de optimización del compilador en la que un programa se optimiza en función de su perfil de ejecución. Según las pruebas, PGO ayuda a mejorar el rendimiento de ClickHouse. En ellas, observamos mejoras de hasta un 15 % en QPS en la suite de pruebas ClickBench. Los resultados más detallados están disponibles aquí. Las mejoras de rendimiento dependen de tu carga de trabajo habitual: puedes obtener resultados mejores o peores. Puedes leer más información sobre PGO en ClickHouse en el issue correspondiente de GitHub.

¿Cómo compilar ClickHouse con PGO?

Hay dos tipos principales de PGO: instrumentación y muestreo (también conocido como AutoFDO). En esta guía se describe el PGO por instrumentación con ClickHouse.
  1. Compile ClickHouse en modo instrumentado. En Clang, esto puede hacerse pasando la opción -fprofile-generate a CXXFLAGS.
  2. Ejecute ClickHouse instrumentado con una carga de trabajo de muestra. Aquí debe usar su carga de trabajo habitual. Una posibilidad es usar ClickBench como carga de trabajo de muestra. ClickHouse en modo instrumentado puede funcionar lentamente, así que téngalo en cuenta y no ejecute ClickHouse instrumentado en entornos críticos para el rendimiento.
  3. Vuelva a compilar ClickHouse con las opciones del compilador -fprofile-use y los perfiles recopilados en el paso anterior.
En la documentación de Clang encontrará una guía más detallada sobre cómo aplicar PGO. Si va a recopilar una carga de trabajo de muestra directamente desde un entorno de producción, le recomendamos usar PGO por muestreo.
Última modificación el 10 de junio de 2026