Pracuję nad tym w obszarach, w których nie ma SLA wydajności. Jeśli chodzi o renderery offline w grafice komputerowej, użytkownicy nie mają „zadowalającej wydajności” dla użytkowników, ponieważ już teraz wypłacają ogromne sumy pieniędzy na dystrybucję komputerów w chmurach i renderowanie farm nawet przy użyciu najnowocześniejszych rendererów do produkcji obrazów i ramek o jakości produkcyjnej, np
Ale muszę powiedzieć jako działający w tej dziedzinie od wielu lat, że każde rozwiązanie, które znacznie obniża łatwość utrzymania na korzyść wydajności, faktycznie działa wbrew ciągle zmieniającym się wymaganiom wydajnościowym. Ponieważ jeśli nie będziesz w stanie skutecznie utrzymywać swojego rozwiązania przez wiele lat, ponieważ rzeczy zmieniają się pod twoimi stopami (zarówno pod względem otaczającego kodu, jak i oczekiwań użytkowników, ponieważ konkurenci wciąż przewyższają się nawzajem), to Twoje rozwiązanie już działa w kierunku starzenia się i potrzeba hurtowej wymiany.
Nie widzę ostatecznego celu profilerów takich jak VTune jako sposobu na przyspieszenie mojego kodu. Ich największą wartością jest upewnienie się, że nie obniżam wydajności, aby sprostać stale rosnącym wymaganiom wydajnościowym. Jeśli absolutnie muszę zastosować trochę rażącą mikrooptymalizację, to profiler, w połączeniu z uruchomieniem go dla rzeczywistych przypadków użytkowników (a nie niektórych przypadków testowych, które, jak sądzę, mogą być ważne), gwarantuje, że zastosuję tak nieuchronnie rażąco wyglądające optymalizacje bardzo, bardzo rozsądnie tylko do pojawiających się najlepszych hotspotów, a także bardzo staranne dokumentowanie ich, ponieważ nieuchronnie będę musiał ponownie odwiedzać, utrzymywać i modyfikować i zmieniać je w nadchodzących latach, jeśli to rozwiązanie pozostanie opłacalne.
A szczególnie, jeśli twoje zoptymalizowane rozwiązanie wymaga większej liczby połączeń, to naprawdę niechętnie go wykorzystam. Jednym z najcenniejszych wskaźników, które doceniłem w najbardziej krytycznych dla wydajności obszarach bazy kodu, jest oddzielenie (jak w minimalizowaniu ilości informacji coś musi działać, co również minimalizuje prawdopodobieństwo, że będzie wymagać zmian, chyba że bezpośrednio potrzebuje zmian ), ponieważ te krytyczne obszary znacznie zwielokrotniają przyczyny zmian. Co oznacza, że im mniej informacji wymaga praca, tym mniej powodów do zmiany, a minimalizowanie powodów zmiany jest naprawdę ogromną częścią poprawy wydajności w moich szczególnych obszarach zainteresowania, ponieważ i tak rzeczy muszą się ciągle zmieniać (my w przeciwnym razie stanę się nieaktualny),
Dla mnie najlepsze i najskuteczniejsze rozwiązania, jakie znalazłem, to takie, w których wydajność, łatwość konserwacji i wydajność nie są ze sobą diametralnie różne. Dążenie do mnie polega na tym, aby te koncepcje były jak najbardziej harmonijne.