June 16th, 2026
0 reactions

Boosting Adobe Photoshop’s Performance with MSVC and SPGO

Software Engineering Manager

Boosting Adobe Photoshop’s Performance with MSVC and SPGO

Adobe and Microsoft worked together to improve Photoshop performance and responsiveness on Windows by combining MSVC’s peak-performance build settings with Sample-based Profile-Guided Optimization (SPGO). The collaboration focused on real customer scenarios where latency matters most, including brush and stroke responsiveness, file open times, and other CPU-intensive operations that directly affect creative flow. Adobe’s combined benchmarking showed improvements of 20% on x64 and 13% on ARM64, demonstrating how modern compiler technology can translate into a better experience for creatives using Photoshop on Windows.

Customer Background

Adobe Photoshop is a large native C++ desktop application built with MSVC on Windows and used by creatives around the world. While many image processing workflows rely heavily on the GPU, some of the most user-visible and latency-sensitive experiences still depend on CPU performance. Drawing, painting, file open, and other interactive operations need to feel immediate because even small delays can interrupt the creative process.

That made Photoshop a strong candidate for deeper collaboration with Microsoft on compiler-driven optimization.

A Path to Better Runtime Performance

Adobe and Microsoft began by looking at the practical path to better runtime performance in Photoshop’s Windows builds. A key part of that work was ensuring Photoshop was using MSVC’s peak-performance compilation model, including whole program optimization and link-time code generation (LTCG) with /GL, so that the compiler could optimize across translation unit boundaries. That foundation was important because it established the baseline for meaningful runtime gains.

The teams also revisited traditional instrumentation-based Profile-Guided Optimization (PGO), which had been explored in an earlier collaboration. In practice, that model did not fit Photoshop’s engineering environment well. The instrumented build introduced a non-standard build configuration, increased engineering complexity, and ran slowly enough to trigger operational timeouts, which made the resulting training data unrepresentative of real-world usage.

From Peak-Performance Builds to SPGO

That experience pointed both teams toward Sample-based Profile Guided Optimizations (SPGO) as a practical alternative. Rather than depending on a separate instrumented build, SPGO uses profile data gathered from standard release binaries running representative workloads. This made it a much better fit for Photoshop’s development and release workflow while still enabling the MSVC optimizer to make profile-driven decisions for critical code paths.

This approach gave Adobe a scalable optimization path without requiring broad source rewrites. Instead of depending on ongoing manual tuning, the team could use compiler feedback from real workloads to improve generated code.

The integration work was still meaningful. Photoshop’s engineering system needed to accommodate the build and data-collection flow required for SPGO, as the use of peak-performance build settings may increase build-system demands. But compared with traditional instrumentation-based PGO, the combined LTCG plus SPGO model was much more compatible with Adobe’s production workflow and more sustainable over time.

Results

By combining MSVC’s peak-performance switches with SPGO, Adobe and Microsoft were able to improve performance in Photoshop scenarios through a scalable engineering approach. These gains reflect SPGO on top of fully optimized Windows release binaries.

Platform Improvement
x64 20%
ARM64 13%

“User drawing and stroking operations become more responsive, file open times are reduced, and affected filters complete faster. 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.” – John Fitzgerald, Senior Software Developer, Adobe

Looking Ahead

The collaboration between Adobe and Microsoft created a foundation for continued performance work on Windows. As Photoshop expands the quality and coverage of its profile data, the teams expect additional opportunities to improve optimization quality over time. That matters as creative experiences grow more complex, and expectations for responsiveness keep rising.

“Performance is consistently ranked among the top drivers of customer satisfaction in Photoshop surveys. Following SPGO rollout, we expect these improvements to contribute positively to user satisfaction. Delivering the most responsive, fluid experience possible for Windows users remains a core product priority.” – Markus Mielke, Director of Product Management Adobe

More broadly, this work shows how advanced compiler and optimization technology can help large native applications deliver better real-world performance without forcing teams into unsustainable engineering tradeoffs. For Adobe, Photoshop served as an important proving ground. For Microsoft, the collaboration demonstrated how MSVC and SPGO can help partners translate compiler innovation into visible customer benefit.

Try It Out

Download Visual Studio 2026 and acquire the SPGO tools today! These tools work with the compilers in Visual Studio 2022 and Visual Studio 2026.

More information:

We want to hear from you. Report issues and share suggestions through Help > Send Feedback in Visual Studio, visit Developer Community, or leave a comment below.

Category

Author

Eric Brumer
Software Engineering Manager

Software engineering manager on the Visual C++ compiler back-end team. I lead the machine-independent optimization team, as well as code generation security, including sanitizers.

0 comments