Microsoft and Adobe team up and make Photoshop 20% faster on Windows

Collaboration Enhances Photoshop Performance

In an era where generative AI services are rapidly gaining traction, traditional image editing software like Photoshop continues to hold a significant position in the creative industry. Recognizing this enduring relevance, Microsoft is actively seeking innovative methods to enhance the performance of Windows-based applications, particularly in collaboration with Adobe.

Through a focused partnership, Microsoft engineers have made notable strides in optimizing specific operations within Photoshop. This large, native desktop application is primarily developed in C++ and compiled using Microsoft’s Visual C++ (MSVC) compiler on Windows. Consequently, Microsoft has directed its efforts toward maximizing performance through MSVC, aiming to refine one of the most widely utilized image editing tools globally.

Microsoft’s initiative centers on addressing real-world customer scenarios that involve CPU-intensive tasks. While many demanding image processing functions are increasingly managed by the GPU, certain latency-sensitive operations—such as brush responsiveness, stroke input, and file-opening tasks—remain heavily reliant on the CPU’s capabilities.

The engineering team embarked on a journey to discover practical enhancements for Photoshop’s performance during the compilation phase. They initiated this process by activating MSVC’s “peak-performance” compilation mode, which is tailored to generate highly optimized binaries for Windows.

Following this, the team explored profile-guided optimization (PGO) to further refine the executables. PGO leverages data from test runs of executable and dynamic-link library (DLL) files to mirror real-world usage patterns, thereby enhancing performance. However, the complexity PGO introduced to Photoshop’s development workflow rendered it less suitable for their needs.

After evaluating PGO, the engineers pivoted to Sample-based Profile Guided Optimizations (SPGO) as a promising alternative. Unlike traditional PGO, SPGO utilizes hardware performance samples from actual release binaries instead of relying solely on data from representative workloads. This method offers greater flexibility in data collection, allowing for analysis across a variety of test and production environments, with typical performance improvements ranging from 5% to 15%.

Microsoft reported that SPGO aligned more effectively with the collaborative efforts involving Photoshop. By utilizing compiler feedback gathered with minimal runtime overhead, engineers could enhance the code produced during MSVC’s final build process without the need for extensive manual tuning.

Moreover, SPGO demonstrated better compatibility with Adobe’s engineering framework. By merging MSVC’s peak-performance mode with SPGO, the teams achieved a remarkable 20% performance boost on x64 Windows systems and a 13% enhancement on Arm architecture.

As highlighted by John Fitzgerald, a senior software developer at Adobe, these optimized builds resulted in improved responsiveness for crucial tasks such as drawing, stroke operations, file-opening times, and filter processing. Fitzgerald emphasized, “These are among the most frequently used and latency-sensitive interactions in a professional creative workflow, where responsiveness directly affects a user’s ability to work fluidly and iteratively.”

Microsoft’s collaboration with Adobe lays a solid groundwork for advancing performance in software tailored for Windows. The company is now showcasing MSVC’s capabilities as a means to enhance performance and user experience across its extensive software ecosystem.

Winsage
Microsoft and Adobe team up and make Photoshop 20% faster on Windows