binaries

Winsage
June 19, 2026
Microsoft is collaborating with Adobe to enhance the performance of Photoshop, a widely used image editing software. The partnership focuses on optimizing operations within Photoshop, which is primarily developed in C++ and compiled using Microsoft’s Visual C++ (MSVC) compiler. Microsoft aims to improve performance for CPU-intensive tasks, particularly those that are latency-sensitive, such as brush responsiveness and file-opening tasks. The engineering team activated MSVC’s "peak-performance" compilation mode and explored profile-guided optimization (PGO) to refine executables. However, due to the complexity PGO introduced, they shifted to Sample-based Profile Guided Optimizations (SPGO), which uses hardware performance samples from actual release binaries. This method allows for greater flexibility in data collection and typically yields performance improvements of 5% to 15%. By combining MSVC’s peak-performance mode with SPGO, the teams achieved a 20% performance boost on x64 Windows systems and a 13% enhancement on Arm architecture. These optimizations resulted in improved responsiveness for critical tasks in Photoshop, enhancing the user experience in professional creative workflows.
Winsage
June 18, 2026
Former Microsoft engineer Dave Plummer reflected on software performance challenges during the '90s, specifically the limitations of machines with 12 MB of RAM. He discussed the Basic Block Tool (BBT), which optimized software binaries by reorganizing their structures to enhance execution speed. A typical binary contained around 10 MB of code, but only about 300 KB was necessary for startup. If this essential code was scattered, it led to performance degradation due to excessive page access. BBT defragmented binaries, grouping related code to streamline access and improve user experience, particularly for large products like Windows and Office. Modern tools like BOLT and HP's Dynamo continue to optimize binary layouts and runtime code, but Plummer cautioned about the risks of manipulating binaries. He noted that while computational power has increased, modern software faces similar performance challenges, with larger binaries and complex dependency graphs. He emphasized the importance of locality in software design, advising to keep hot data and code together to enhance performance.
Search