Co je optimalizace programu?

Optimalizace programu je proces úpravy počítačového programu takovým způsobem, který způsobuje, že program pracuje rychleji, spotřebovává méně prostředků nebo obecně funguje s vyšší úrovní účinnosti. Úkol optimalizace může být prováděn automaticky některými kompilátory programovacího jazyka, záměrně pomocí optimalizačního programu, nebo ručně programátory, kteří procházejí zdrojovým kódem a pokoušejí se provést konkrétní vylepšení. Obecně je optimalizace programu prováděna s konkrétním cílem, protože existuje velmi málo obecných optimalizací, které lze provést v programu, který nějakým způsobem nesnižuje optimalizovaný stav jiné části programu, což znamená, že program obvykle může být optimalizován pro rychlost nebo využití zdrojů, ale obvykle ne obojí. Jednou komplikací, která může nastat u některých typů optimalizace, je to, že mnoho programovacích jazyků na vysoké úrovni poskytuje tak velkou úroveň abstrakce mezi nativním kódem a počítačovým jazykem, že optimalizaci může být obtížné nebo nemožné implementovat napříč všemi platformami ve všech situacích, zejména s interpretované jazyky, které používají kompilaci just-in-time (JIT).

Důležitým konceptem při optimalizaci programu je myšlenka, že optimalizace obvykle přichází s nějakou cenou. Jedním z příkladů je to, že když je část kódu optimalizována pro rychlejší běh, zvýšení rychlosti by mohlo nastat za cenu čitelnosti kódu, využití paměti, flexibility programu nebo řady dalších nákladů. To znamená, že optimalizace programu musí být cíleným procesem, jehož záměrem je zajistit, aby jeden aspekt programu fungoval lépe a zároveň byl ochoten obětovat účinnost jiných aspektů.

Různé typy optimalizace programu mohou být prováděny v různých fázích vývoje programu. Během návrhu může být provedena široká optimalizace zajištěním efektivního fungování programu. Při práci se skutečným zdrojovým kódem mohou optimalizace zahrnovat zajištění, že neexistují žádné cizí příkazy, opakovaná volání nebo špatně napsané funkce. Při kompilaci je mnoho optimalizací automaticky prováděno kompilátorem a může být vedeno pomocí různých přepínačů kompilátoru nebo příkazů programátorem.

Automatické optimalizace, jako je tomu u kompilátoru nebo programu pro optimalizaci věnování, mohou často zahrnovat triky, které jsou příliš složité na to, aby byly praktické pro lidské programátory. To může zahrnovat pohyblivé instrukce v programu, takže jsou prováděny mimo původně napsané pořadí, ale efektivněji pro procesor. Může také zahrnovat úmyslné přesunutí prostředků, jako jsou paměťové bloky, aby k nim mohl být rychlejší přístup. Většina optimalizace programu probíhá automaticky na úrovni kompilátoru.

Jednou komplikací s opakovanou nebo agresivní optimalizací programu je to, že jakmile je program upraven tak, aby pracoval efektivněji, je obecně obtížnější jej modifikovat pro jiné účely, jako je přidání funkčnosti nebo oprava chyb. K tomu může dojít, když se optimalizace začnou blokovat v chování nastavených programů, které se snadno nezmění nebo nepřizpůsobí novému kódu, aniž by bylo nutné zrušit všechny optimalizace. Větší problém spočívá v tom, že v mnoha případech je optimalizovaný program méně čitelný pro člověka, protože místo stručných příkazů a klasických řídicích struktur se používají triky a zkratky. Z těchto důvodů často existuje úroveň optimalizace programu, při které je přijatelné zastavit, i když drastické úpravy kódu mohou způsobit, že program bude pracovat o něco efektivněji.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?