Ich arbeite in Bereichen, in denen es keine Leistungs-SLA gibt. Wenn es um Offline-Renderer in der Computergrafik geht, gibt es für Benutzer keine "zufriedenstellende Leistung", da sie bereits enorme Summen für die Verteilung von Computing auf Clouds und das Rendern von Farmen ausgeben, selbst mit den modernsten Renderern um Bilder und Rahmen in Produktionsqualität für Filme auszugeben, z
Aber ich muss sagen, dass jede Lösung, die die Wartbarkeit zugunsten der Effizienz erheblich beeinträchtigt, tatsächlich gegen die sich ständig ändernden Leistungsanforderungen arbeitet. Denn wenn Sie Ihre Lösung jahrelang nicht effektiv warten können, da sich die Dinge unter Ihren Füßen verschieben (sowohl in Bezug auf den Umgebungscode als auch auf das, was die Benutzer von Konkurrenten erwarten, die sich gegenseitig übertreffen), dann arbeitet Ihre Lösung bereits in Richtung Veralterung und In Notwendigkeit des Großhandelsersatzes.
Ich sehe den ultimativen Zweck von Profilern wie VTune nicht darin, meinen Code schneller laufen zu lassen. Ihr größter Wert ist es, sicherzustellen, dass ich meine Produktivität nicht einschränke, um den ständig steigenden Leistungsanforderungen gerecht zu werden. Wenn ich absolut etwas grob aussehende Mikro-Optimierung anwenden müssen, dann den Profiler, kombiniert mit ihm gegen reale Benutzer Fällen läuft (und nicht einige Testfall stelle ich mir vielleicht wichtig sein), stellt sicher , bewerbe ich mich so zwangsläufig grob aussehenden Optimierungen werden sehr, sehr vernünftig nur für die Top-Hotspots durchgeführt, die angezeigt werden, und sie werden sehr sorgfältig dokumentiert, da ich sie in den kommenden Jahren unweigerlich überarbeiten und warten sowie optimieren und ändern muss, wenn diese Lösung funktionsfähig bleibt.
Und vor allem, wenn Ihre optimierte Lösung mehr Kopplung beinhaltet, würde ich sie nur ungern verwenden. Zu den wertvollsten Messwerten, die ich in den leistungskritischsten Bereichen der Codebasis zu schätzen gelernt habe, gehört das Entkoppeln (wie bei der Minimierung der Informationsmenge, die benötigt wird, um zu funktionieren, was ebenfalls die Wahrscheinlichkeit minimiert, dass Änderungen erforderlich sind, sofern keine direkten Änderungen erforderlich sind) ), weil diese kritischen Bereiche die Gründe für Änderungen erheblich vervielfachen. Das heißt, je weniger Informationen für die Arbeit benötigt werden, desto weniger Gründe für Änderungen und die Minimierung der Änderungsgründe tragen wesentlich zur Verbesserung der Produktivität in meinen speziellen Schwerpunktbereichen bei, da sich die Dinge sowieso ständig ändern müssen (wir) veraltet sonst in einem Jahr),
Für mich sind die besten und effektivsten Lösungen, die ich gefunden habe, diejenigen, bei denen sich Effizienz, Wartbarkeit und Produktivität nicht diametral gegenüberstehen. Mir geht es darum, diese Konzepte so harmonisch wie möglich zu gestalten.