Met de snelle opkomst van generatieve kunstmatige intelligentiediensten nemen traditionele beeldverwerkingstools nog steeds een kernpositie in in de creatieve industrie, waaronder Adobe Photoshop, dat veel wordt gebruikt in professionele workflows. Om het prestatiepotentieel van deze vlaggenschipapplicatie op het Windows-platform verder te benutten, zijn Microsoft en Adobe een diepgaande technische samenwerking gestart om een ​​aantal belangrijke bewerkingen aanzienlijk te versnellen door middel van optimalisatie op compilerniveau.

Photoshop is een grote, native desktopapplicatie geschreven in C++, gebouwd op Windows met behulp van Microsoft's eigen Visual C++ (MSVC) compiler. Microsoft verklaarde dat deze samenwerking zich richt op bewerkingen die in echte gebruikersscenario's sterk afhankelijk zijn van CPU. Het doel is om applicaties "sneller en soepeler te laten werken" in het dagelijkse werk door aanpassingen aan compilatie- en optimalisatiestrategieën zonder de kernfuncties van het product te veranderen.

In moderne beeldverwerkingsworkflows kunnen veel complexe beeldbewerkingen al worden voltooid via GPU-versnelling, maar niet alle taken zijn geschikt voor volledige verwerking door de GPU. Microsoft wees erop dat sommige bewerkingen die extreem gevoelig zijn voor latentie, zoals penseelreactie, invoer van penseelstreken en het openen van bestanden, nog steeds sterk afhankelijk zijn van de ruwe rekenkracht en uitvoeringsefficiëntie van de CPU, en daarom de focus zijn geworden van dit optimalisatiewerk.

Om dit te doen heeft het technische team tijdens het bouwproces eerst de "piekprestatie"-compilatiemodus van MSVC ingeschakeld om een ​​uitvoerbaar bestand te produceren dat in hoge mate is geoptimaliseerd voor het Windows-platform. Op deze basis probeerden de ingenieurs van Microsoft en Adobe de traditionele "Profile-Guided Optimization" (PGO) te introduceren, die prestatiegegevens van .exe en .dll verzamelt tijdens testruns om dichter bij het werkelijke gebruikspatroon te komen, waardoor de compiler wordt begeleid om meer gerichte optimalisatiebeslissingen te nemen.

PGO heeft echter ook zijn tekortkomingen in complexe grootschalige projecten zoals Photoshop. Microsoft gaf openlijk toe dat hoewel PGO voordelen kan opleveren, het de complexiteit van het bouwproces aanzienlijk zal vergroten en niet volledig consistent is met het bestaande ontwikkelings- en releaseritme van Photoshop. Na evaluatie van de kosten en baten besloten de twee partijen over te stappen op een nieuwe, flexibelere oplossing: Sample-based Profile Guided Optimizations (SPGO).

In tegenstelling tot traditionele PGO, waarvoor specifiek testen van ‘representatieve workloads’ vereist is, maakt SPGO gebruik van hardwareprestatiebemonsteringsgegevens van uitgebrachte versies in echte omgevingen om het optimalisatieproces aan te sturen. Deze methode is niet alleen flexibeler bij het verzamelen van gegevens en kan een verscheidenheid aan test- en productiemachines bestrijken, maar kan ook worden teruggekoppeld naar de compiler met vrijwel geen toename van de runtime-overhead, waardoor efficiëntere machinecode wordt gegenereerd in de laatste bouwfase. Microsoft zegt dat SPGO doorgaans een prestatieverbetering van 5% tot 15% kan bewerkstelligen, en in deze samenwerking met Adobe is deze technologie geschikter gebleken voor integratie in het engineeringsysteem van Photoshop.

Nadat ze de geschiktheid van SPGO hadden bevestigd, combineerden Microsoft en Adobe de topprestatiemodus van MSVC met SPGO om een ​​nieuwe optimalisatiepijplijn te vormen. Volgens door Microsoft bekendgemaakte gegevens verbetert de geoptimaliseerde buildversie de algehele prestaties met ongeveer 20% op x64-gebaseerde Windows-systemen en met ongeveer 13% op Arm-platforms. Deze verbeteringen hebben rechtstreeks invloed op de belangrijkste handelingen waaraan gebruikers dagelijks het meest worden blootgesteld, zoals de reactiesnelheid bij het tekenen met een penseel, de vloeiendheid van het tekenen van lijnen, de openingstijd van bestanden en de efficiëntie van de filterverwerking.

Adobe senior softwareontwikkelingsingenieur John Fitzgerald zei dat deze optimalisatie op basis van MSVC en SPGO de responsiviteit van hoogfrequente interacties zoals teken- en lijnbewerkingen, het openen van bestanden en filterverwerking aanzienlijk heeft verbeterd. In professionele creatieve workflows zijn dit vaak de onderdelen waarvan gebruikers het meest afhankelijk zijn en die het meest gevoelig zijn voor vertragingen. Hun soepelheid heeft rechtstreeks invloed op de vraag of makers een coherent en iteratief creatief ritme kunnen handhaven.

Microsoft benadrukte dat de samenwerking met Adobe aan het Photoshop-project niet alleen bedoeld is om de prestaties van een enkele applicatie te verfijnen, maar ook een belangrijke technische referentie biedt voor het optimaliseren van andere software op het Windows-platform in de toekomst. Het bedrijf hoopt dat door het demonstreren van de mogelijkheden van MSVC in de topprestatiemodus en SPGO-technologie, het meer ontwikkelaars zal aanmoedigen om systematisch het prestatiepotentieel van het compilerniveau te benutten bij het bouwen van applicaties voor het Windows-ecosysteem, waardoor gebruikers een soepelere en efficiëntere ervaring krijgen.