Microsoft и Adobe провели совместную работу, которая позволила заметно ускорить работу Photoshop на Windows. В результате оптимизаций компилятора скорость выполнения ряда операций выросла на 20% на системах x64 и на 13% на устройствах с процессорами Arm. Это не новый функционал и не ИИ-фильтры, а глубокая оптимизация на уровне компиляции кода.

Photoshop — большое нативное приложение на C++, которое собирается компилятором Microsoft Visual C++ (MSVC). Именно на этом этапе инженеры обеих компаний и сосредоточились.
Как удалось добиться ускорения
Большая часть сложной обработки изображений в Photoshop сегодня выполняется на GPU. Однако многие задачи, чувствительные к задержкам — работа кисти, обработка штрихов, открытие файлов и применение фильтров — всё ещё сильно зависят от производительности процессора.
Специалисты Microsoft включили режим «максимальной производительности» компилятора и применили технологию Sample-based Profile Guided Optimization (SPGO). В отличие от классической профильной оптимизации, SPGO собирает данные не из искусственных тестов, а напрямую из реальных рабочих сборок программы. Это позволяет компилятору лучше понимать, какие участки кода используются чаще всего, и оптимизировать их без ручной настройки.
Технология оказалась удобной и для команды Adobe: она не усложняет процесс сборки и хорошо вписывается в их инженерные процессы. В результате удалось улучшить именно те операции, которые дизайнеры и фотографы используют чаще всего.
Что это даёт пользователям
По словам старшего разработчика Adobe Джона Фицджеральда, оптимизированные сборки заметно повысили отзывчивость при рисовании и работе со штрихами, ускорили открытие файлов и обработку фильтров. Эти улучшения особенно важны в профессиональной работе, где каждая секунда задержки мешает творческому процессу.
Microsoft подчёркивает, что такой подход можно применять и к другим приложениям под Windows. Сотрудничество с Adobe стало хорошим примером того, как производитель операционной системы и разработчик популярного софта могут вместе выжать максимум производительности из существующего кода.
