A ideia original era usar PGO e ThinLTO para o pacote de lançamento do Windows. Mas eles acabaram usando apenas o PGO por enquanto. Mas com PGO + ThinLTO eles viram que o arquivo do instalador ficou cerca de 5% menor, enquanto o conjunto de ferramentas foi construído cerca de 20% mais rápido. Logotipo da LLVM
Com este commit que foi integrado no começo desta semana, apenas o PGO está ativado por padrão, mas com ótimos resultados para o desempenho do conjunto de ferramentas:
Use PGO para pacote de lançamento do Windows x86_64 (#71067)
Aplicar isso ao 17.0.4 faz o conjunto de ferramentas 22% mais rápido (medido pela construção do clang).
Para aqueles que já experimentaram com LTO e PGO, os resultados provavelmente não são muito surpreendentes. O PGO pode gerar uma grande melhoria de desempenho, desde que você tenha perfis precisos para o uso do software. Mas devido às complexidades envolvidas e à necessidade de perfis precisos, o Clang PGO foi removido do kernel Linux como exemplo. De qualquer forma, o PGO é uma das técnicas interessantes de otimização do compilador para ajudar a alcançar o máximo de desempenho.
Até a próxima !!
Nenhum comentário:
Postar um comentário