Skip to main content

Co je optimalizace programu?

Optimalizace programu je proces úpravy počítačového programu způsobem, který způsobuje, že program provádí rychleji, spotřebovává méně zdrojů nebo obecně funguje s vyšší úrovní účinnosti.Úkol optimalizace lze provádět automaticky některými kompilátory programovacího jazyka, úmyslně pomocí optimalizačního programu nebo ručně programátory, kteří procházejí zdrojovým kódem a pokusí se provést konkrétní vylepšení.Obecně se provádí optimalizace programu s ohledem na konkrétní konec, protože existuje jen 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ůžebýt optimalizován pro rychlost nebo využití zdrojů, ale obvykle ne obojí.Jednou komplikací, ke které může dojít 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 optimalizace může být obtížné nebo nemožné implementovat napříč všemi platformami ve všech situacích, zejména sInterpretované jazyky, které používají kompilaci just-in-time (JIT).

Důležitým konceptem optimalizace programu je myšlenka, že optimalizace obvykle přichází s nějakou cenou.Jedním z příkladů je, že když je kus kódu optimalizován tak, aby běžel rychleji, zvýšení rychlosti by mohlo dosáhnout ceny č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, s úmyslem, aby jeden aspekt programu fungoval lepším způsobem, zatímco je ochoten obětovat efektivitu jiných aspektů.Vývoj programu.Během návrhu lze širokou optimalizaci provést zajištěním, že se zdá, že program běží efektivně.Při práci se skutečným zdrojovým kódem mohou optimalizace zahrnovat zajištění žádných cizích příkazů, opakujících se hovorů nebo špatně psaných funkcí.Při kompilaci je kompilátor automaticky prováděno mnoho optimalizací a může být vedeno pomocí různých přepínačů nebo směrnic programátora.Příliš složité na to, aby byly praktické pro lidské programátory.To může zahrnovat pohyblivé pokyny do programu, aby byly provedeny z řádku původně napsané, ale efektivnějším způsobem pro procesor.Může také zahrnovat úmyslné přesouvání zdrojů, jako jsou paměťové bloky, aby mohly být přistupovány rychleji.Většina optimalizace programu se vyskytuje automaticky na úrovni kompilátoru.

Jedna komplikace s opakovanou nebo agresivní optimalizací programu je, že jakmile je program upraven tak, aby efektivněji běžel, je obecně obtížnější modifikovat pro jiné účely, jako je přidání funkčnosti nebo přidání funkcí neboOprava chyb.K tomu může dojít, když se optimalizace začnou zablokovat v prostředí SET Program, která se snadno změní nebo přizpůsobí novému kódu, aniž by vyžadovala, aby byla všechna optimalizace vrácena.Větším problémem je, že v mnoha případech se optimalizovaný program stává méně čitelným člověkem, protože namísto pouze stručných příkazů a klasických kontrolní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 by mohly zajistit, aby program fungoval mírně efektivněji.