Co to jest optymalizacja programu?

Optymalizacja programu to proces modyfikowania programu komputerowego w taki sposób, aby program działał szybciej, zużywał mniej zasobów lub generalnie działał z wyższym poziomem wydajności. Zadanie optymalizacji może być wykonywane automatycznie przez niektóre kompilatory języka programowania, celowo za pomocą programu optymalizacyjnego lub ręcznie przez programistów, którzy przechodzą przez kod źródłowy i próbują wprowadzić określone ulepszenia. Zasadniczo optymalizacja programu jest przeprowadzana z myślą o konkretnym celu, ponieważ istnieje bardzo niewiele ogólnych optymalizacji, które można wprowadzić w programie, które w żaden sposób nie zmniejszają zoptymalizowanego stanu innej części programu, co oznacza, że ​​program zwykle może być zoptymalizowany pod kątem szybkości lub zużycia zasobów, ale zwykle nie oba. Jedną z komplikacji, które mogą wystąpić w przypadku niektórych rodzajów optymalizacji, jest to, że wiele języków programowania wysokiego poziomu zapewnia tak duży poziom abstrakcji między natywnym kodem a językiem komputera, że ​​optymalizacja może być trudna lub niemożliwa do wdrożenia na wszystkich platformach we wszystkich sytuacjach, szczególnie w przypadku interpretowane języki korzystające z kompilacji just-in-time (JIT).

Ważną koncepcją optymalizacji programu jest pomysł, że optymalizacja zwykle wiąże się z pewną ceną. Jednym z przykładów jest to, że gdy fragment kodu jest zoptymalizowany do szybszego działania, wzrost prędkości może wynikać z czytelności kodu, zużycia pamięci, elastyczności programu lub szeregu innych kosztów. Oznacza to, że optymalizacja programu musi być procesem ukierunkowanym, z zamiarem sprawienia, aby jeden aspekt programu działał lepiej, a jednocześnie byłby skłonny poświęcić wydajność innych aspektów.

Różne typy optymalizacji programu mogą być wykonywane na różnych etapach opracowywania programu. Podczas projektowania można przeprowadzić szeroką optymalizację, upewniając się, że program działa skutecznie. Podczas pracy z rzeczywistym kodem źródłowym optymalizacje mogą obejmować zapewnienie, że nie będzie żadnych obcych poleceń, powtarzalnych wywołań lub źle napisanych funkcji. Podczas kompilacji kompilator wykonuje automatycznie wiele optymalizacji i może być prowadzony za pomocą różnych przełączników kompilatora lub dyrektyw programisty.

Automatyczne optymalizacje, jakie mogą wystąpić w kompilatorze lub programie optymalizacji dedykacji, często mogą wymagać sztuczek, które są zbyt złożone, aby były praktyczne dla programistów. Może to obejmować przenoszenie instrukcji w programie, aby były wykonywane poza pierwotnie napisaną kolejnością, ale w bardziej wydajny sposób dla procesora. Może również obejmować celowe przenoszenie zasobów, takich jak bloki pamięci, aby można było uzyskać do nich szybszy dostęp. Większość optymalizacji programu odbywa się automatycznie na poziomie kompilatora.

Jedną z komplikacji związanej z powtarzaną lub agresywną optymalizacją programu jest to, że po zmodyfikowaniu programu w celu jego bardziej wydajnego działania, modyfikacja do innych celów, takich jak dodawanie funkcjonalności lub naprawianie błędów, staje się trudniejsza. Może się to zdarzyć, gdy optymalizacje zaczną blokować określone zachowania programu, których nie można łatwo zmienić lub dostosować do nowego kodu bez konieczności cofania wszystkich optymalizacji. Większy problem polega na tym, że w wielu przypadkach zoptymalizowany program staje się mniej czytelny dla ludzi, ponieważ zamiast zwięzłych poleceń i klasycznych struktur sterowania używane są sztuczki i skróty. Z tych powodów często istnieje pewien poziom optymalizacji programu, przy którym dopuszczalne jest zatrzymanie, nawet jeśli drastyczne modyfikacje kodu mogą sprawić, że program będzie działał nieco bardziej wydajnie.

INNE JĘZYKI

Czy ten artykuł był pomocny? Dzięki za opinie Dzięki za opinie

Jak możemy pomóc? Jak możemy pomóc?