Pular para o conteúdo principal
A Otimização Guiada por Perfil (PGO) é uma técnica de otimização de compilação em que um programa é otimizado com base no perfil de execução. Nos testes, a PGO ajuda a melhorar o desempenho do ClickHouse. Segundo os testes, observamos melhorias de até 15% em QPS no conjunto de testes ClickBench. Os resultados mais detalhados estão disponíveis aqui. Os ganhos de desempenho dependem da sua carga de trabalho típica — você pode obter resultados melhores ou piores. Mais informações sobre PGO no ClickHouse podem ser encontradas na issue correspondente no GitHub.

Como compilar o ClickHouse com PGO?

Há dois tipos principais de PGO: Instrumentação e Amostragem (também conhecida como AutoFDO). Este guia descreve o PGO por Instrumentação no ClickHouse.
  1. Compile o ClickHouse no modo instrumentado. No Clang, isso pode ser feito passando a opção -fprofile-generate em CXXFLAGS.
  2. Execute o ClickHouse instrumentado com uma carga de trabalho de exemplo. Aqui, você deve usar sua carga de trabalho habitual. Uma das abordagens possíveis é usar o ClickBench como carga de trabalho de exemplo. O ClickHouse no modo de instrumentação pode ficar lento, então esteja preparado para isso e não execute o ClickHouse instrumentado em ambientes sensíveis a desempenho.
  3. Recompile o ClickHouse mais uma vez com as flags de compilação -fprofile-use e os perfis coletados na etapa anterior.
Um guia mais detalhado sobre como aplicar PGO está na documentação do Clang. Se você pretende coletar uma carga de trabalho de exemplo diretamente de um ambiente de produção, recomendamos usar PGO por Amostragem.
Última modificação em 10 de junho de 2026