Skip to main content

Co to jest optymalizacja programu?

Optymalizacja programu to proces modyfikowania programu komputerowego w sposób, który powoduje szybsze wykonywanie, konsumowanie mniej zasobów lub ogólnie funkcjonowania z wyższym poziomem wydajności.Zadanie optymalizacji można wykonać automatycznie przez niektóre kompilatory języka programowania, celowo za pomocą programu optymalizacji lub ręcznie przez programistów, którzy przechodzą kod źródłowy i próbują wprowadzić konkretne ulepszenia.Ogólnie rzecz biorąc, optymalizacja programu jest przeprowadzana z myślą o konkretnym końcu, ponieważ istnieje bardzo niewiele ogólnych optymalizacji, które można wprowadzić do programu, które w pewnym sensie nie zmniejszają zoptymalizowanego stanu innej części programu, co oznacza, że program zwykle możeBądź zoptymalizowany pod kątem użycia prędkości lub zasobów, ale zwykle nie oba.Jednym z komplikacji, które może wystąpić w niektórych rodzajach optymalizacji, jest to, że wiele języków programowania wysokiego poziomu zapewnia tak duży poziom abstrakcji między kodem natywnym a językiem komputerowym, że optymalizacja może być trudna lub niemożliwa do wdrożenia na wszystkich platformach we wszystkich sytuacjach, zwłaszcza zZinterpretowane języki, które wykorzystują kompilację Just-in-Time (JIT).

Ważną koncepcją w optymalizacji programu jest pomysł, że optymalizacja zwykle ma pewną cenę.Jednym z przykładów tego jest to, że gdy kawałek kodu jest zoptymalizowany do szybszego działania, wzrost prędkości może przynieść cenę czytelności kodu, zużycie pamięci, elastyczność programu lub szereg innych kosztów.Oznacza to, że optymalizacja programu musi być procesem ukierunkowanym, z zamiarem uczynienia jednego aspektu programu działającego w lepszy sposób, jednocześnie chętnie poświęcenie wydajności innych aspektów.

Różne rodzaje optymalizacji programu można wykonać na różnych etapachrozwój programu.Podczas projektowania można przeprowadzić szeroką optymalizację, upewniając się, że program wydaje się działać skutecznie.Podczas pracy z faktycznym kodem źródłowym optymalizacje mogą obejmować zapewnienie, że nie ma żadnych obcych poleceń, powtarzających się połączeń ani słabo pisemnych funkcji.Przy kompilacji wiele optymalizacji jest automatycznie wykonywanych przez kompilator i może być prowadzone za pomocą różnych przełączników lub dyrektyw kompilatora przez programistę.Zbyt skomplikowane, aby być praktycznym dla ludzkich programistów.Może to obejmować przenoszenie instrukcji w programie, aby były one wykonywane poza zamówieniem pierwotnie napisane, ale w bardziej wydajny sposób dla procesora.Może to również obejmować celowo zmieniające zasoby, takie jak bloki pamięci, aby można było uzyskać do nich szybciej.Większość optymalizacji programu występuje automatycznie na poziomie kompilatora.

Jedna komplikacja z powtarzającą się lub agresywną optymalizacją programu jest to, że po zmodyfikowaniu programu w celu uruchamiania się bardziej wydajnie staje się trudniejsze do zmodyfikowania do innych celów, takich jak dodanie funkcjonalności lub funkcjonalności lubnaprawianie błędów.Może się to zdarzyć, gdy optymalizacje zaczynają blokować ustawione zachowania programowe, które nie są łatwe do zmiany ani dostosowywane do nowego kodu, nie wymagając odnalezienia wszystkich optymalizacji.Większy problem polega na tym, że w wielu przypadkach zoptymalizowany program staje się mniej czytany przez człowieka, ponieważ sztuczki i skróty są używane zamiast tylko zwięzłych poleceń i klasycznych struktur kontrolnych.Z tych powodów często istnieje poziom optymalizacji programu, przy którym dopuszczalne jest zatrzymanie, nawet jeśli drastyczne modyfikacje kodu mogą sprawić, że program działał nieco wydajniej.