Com o rápido crescimento dos serviços generativos de inteligência artificial, as ferramentas tradicionais de processamento de imagens ainda ocupam uma posição central na indústria criativa, incluindo o Adobe Photoshop, que é amplamente utilizado em fluxos de trabalho profissionais. Para aproveitar ainda mais o potencial de desempenho deste principal aplicativo na plataforma Windows, a Microsoft e a Adobe lançaram uma cooperação técnica aprofundada para acelerar significativamente uma série de operações importantes por meio da otimização no nível do compilador.

Photoshop é um grande aplicativo de desktop nativo escrito em C++, desenvolvido no Windows usando o compilador Visual C++ (MSVC) da própria Microsoft. A Microsoft afirmou que esta cooperação se concentra em operações que são altamente dependentes da CPU em cenários reais de usuários. O objetivo é fazer com que os aplicativos “funcionem de maneira mais rápida e suave” no trabalho diário por meio de ajustes nas estratégias de compilação e otimização, sem alterar as funções principais do produto.
Nos fluxos de trabalho modernos de processamento de imagens, muitas operações complexas de imagens já podem ser concluídas por meio da aceleração da GPU, mas nem todas as tarefas são adequadas para o processamento completo pela GPU. A Microsoft apontou que algumas operações que são extremamente sensíveis à latência, como resposta do pincel, entrada de traços e abertura de arquivo, ainda são altamente dependentes do poder de computação bruto e da eficiência de execução da CPU e, portanto, tornaram-se o foco deste trabalho de otimização.
Para fazer isso, a equipe de engenharia primeiro habilitou o modo de compilação de "desempenho máximo" do MSVC no processo de construção para produzir um executável altamente otimizado para a plataforma Windows. Com base nisso, os engenheiros da Microsoft e da Adobe tentaram introduzir a tradicional "Otimização Guiada por Perfil" (PGO), que coleta dados de desempenho de .exe e .dll durante as execuções de teste para se aproximar do padrão de uso real, orientando assim o compilador para tomar decisões de otimização mais direcionadas.
No entanto, o PGO também tem suas deficiências em projetos complexos de grande escala como o Photoshop. A Microsoft admitiu francamente que, embora o PGO possa trazer benefícios, ele aumentará significativamente a complexidade do processo de construção e não é totalmente consistente com o ritmo existente de desenvolvimento e lançamento do Photoshop. Depois de avaliar os custos e benefícios, as duas partes decidiram migrar para uma solução nova e mais flexível: Otimizações Guiadas por Perfil Baseadas em Amostras (SPGO).
Ao contrário do PGO tradicional, que requer testes dedicados de “cargas de trabalho representativas”, o SPGO aproveita dados de amostragem de desempenho de hardware de versões lançadas em ambientes do mundo real para conduzir o processo de otimização. Este método não é apenas mais flexível na coleta de dados e pode cobrir uma variedade de máquinas de teste e produção, mas também pode ser realimentado ao compilador quase sem aumento na sobrecarga do tempo de execução, gerando assim um código de máquina mais eficiente no estágio final de construção. A Microsoft afirma que o SPGO normalmente pode trazer uma melhoria de desempenho de 5% a 15% e, nesta cooperação com a Adobe, esta tecnologia provou ser mais adequada para integração no sistema de engenharia do Photoshop.
Depois de confirmar a adequação do SPGO, a Microsoft e a Adobe combinaram o modo de desempenho máximo do MSVC com o SPGO para formar um novo pipeline de otimização. De acordo com dados divulgados pela Microsoft, a versão otimizada melhora o desempenho geral em cerca de 20% em sistemas Windows baseados em x64 e em cerca de 13% em plataformas Arm. Essas melhorias afetam diretamente as principais operações às quais os usuários estão mais expostos todos os dias, como a velocidade de resposta ao desenhar com pincel, a suavidade do desenho do traço, o tempo de abertura do arquivo e a eficiência do processamento do filtro.
O engenheiro sênior de desenvolvimento de software da Adobe, John Fitzgerald, disse que essa otimização baseada em MSVC e SPGO melhorou significativamente a capacidade de resposta de interações de alta frequência, como operações de desenho e traçado, abertura de arquivos e processamento de filtros. Em fluxos de trabalho criativos profissionais, essas operações costumam ser as partes das quais os usuários mais dependem e são mais sensíveis a atrasos. Sua suavidade afeta diretamente a capacidade dos criadores de manter um ritmo criativo coerente e iterativo.
A Microsoft enfatizou que sua cooperação com a Adobe no projeto Photoshop não serve apenas para ajustar o desempenho de um único aplicativo, mas também fornece uma importante referência técnica para otimizar outros softwares na plataforma Windows no futuro. A empresa espera que, ao demonstrar as capacidades do MSVC no modo de desempenho máximo e na tecnologia SPGO, incentive mais desenvolvedores a explorar sistematicamente o potencial de desempenho no nível do compilador ao criar aplicativos para o ecossistema Windows, proporcionando assim aos usuários uma experiência mais suave e eficiente.