Optimizările compilatorului Microsoft oferă o accelerare cu 20% pe x64 și cu 13% pe Arm
Compilare chestiune: În ciuda creșterii fulgerătoare a serviciilor AI generative, instrumentele tradiționale de editare a imaginilor precum Photoshop domină în continuare industria creativă. Atât de mult încât Microsoft – acum concentrat în mare parte pe servicii cloud și modele AI – lucrează din greu pentru a găsi noi modalități de a face aplicațiile bazate pe Windows să ruleze mai rapid.
Datorită unei strânse colaborări cu Adobe, inginerii Microsoft au îmbunătățit semnificativ performanța în anumite operațiuni Photoshop. Photoshop este o aplicație desktop nativă mare, scrisă în C++ și compilată cu compilatorul Microsoft Visual C++ pe Windows, motiv pentru care Microsoft s-a concentrat pe MSVC într-un efort de a extrage performanță suplimentară dintr-una dintre cele mai utilizate aplicații de editare a imaginilor din lume.
Microsoft a explicat că colaborarea a vizat scenarii ale clienților din lumea reală care implică operațiuni intensive de CPU. Multe sarcini complexe de procesare a imaginilor sunt acum gestionate – sau în unele cazuri „accelerate” – de GPU. Cu toate acestea, unele sarcini sensibile la latență, cum ar fi capacitatea de răspuns a pensulei, introducerea cursei și operațiunile de deschidere a fișierelor, depind în continuare în mare măsură de performanța brută a procesorului.
Inginerii au explorat noi modalități practice de a îmbunătăți performanța Photoshop în timpul compilării. În primul rând, au activat modul de compilare „peak-performance” al MSVC, care este conceput pentru a produce binare extrem de optimizate pe Windows.
Apoi au experimentat optimizarea ghidată de profil pentru a optimiza și mai mult executabilele. PGO folosește datele colectate din testele binare .exe și .dll pentru a reflecta mai bine modelele de utilizare din lumea reală și pentru a îmbunătăți performanța. Cu toate acestea, inginerii au descoperit că PGO nu era o potrivire ideală pentru fluxul de lucru de dezvoltare al Photoshop, deoarece adaugă complexitate procesului de construire.

După ce au încercat – și au eșuat – cu PGO, inginerii au apelat la Optimizări ghidate de profil bazate pe mostre ca o alternativă potențială. Spre deosebire de PGO tradițional, SPGO înlocuiește datele colectate din sarcinile de lucru „reprezentative” cu mostre de performanță hardware colectate din binarele reale de lansare. SPGO este, de asemenea, mai flexibil în ceea ce privește colectarea datelor, permițând analiza într-un set divers de mașini de testare și producție și poate oferi câștiguri tipice de performanță de aproximativ 5% până la 15%.
Microsoft a spus că SPGO s-a dovedit a fi mai potrivit pentru colaborarea cu Photoshop. În loc să se bazeze pe reglarea manuală, inginerii ar putea folosi feedback-ul compilatorului – colectat cu un timp de rulare neglijabil – pentru a îmbunătăți codul generat în timpul procesului final de construire al MSVC.
SPGO s-a dovedit, de asemenea, a fi mai compatibil cu mediul de inginerie Adobe. Prin combinarea modului de performanță maximă al MSVC cu SPGO, echipele au reușit să îmbunătățească performanța Photoshop cu 20% pe sisteme Windows x64 și cu 13% pe Arm.
După cum a menționat dezvoltatorul senior de software Adobe, John Fitzgerald, versiunile optimizate au oferit o mai bună capacitate de răspuns la operațiunile de desen și trage, timpii de deschidere a fișierelor și procesarea filtrelor. „Acestea sunt printre cele mai frecvent utilizate și interacțiunile sensibile la latență într-un flux de lucru creativ profesional, în care capacitatea de răspuns afectează direct capacitatea unui utilizator de a lucra fluid și iterativ”, a spus Fitzgerald.
Microsoft a spus că colaborarea cu Adobe oferă o bază semnificativă pentru îmbunătățirea performanței în software-ul conceput pentru Windows. Compania evidențiază acum capacitățile MSVC ca o modalitate de a îmbunătăți performanța și experiența utilizatorului în ecosistemul său software mai larg.
