Skip to main content

Vad är programoptimering?

Programoptimering är processen för att modifiera ett datorprogram på ett sätt som får programmet att utföra snabbare, konsumera färre resurser eller i allmänhet fungerar med en högre effektivitetsnivå.Optimeringsuppgiften kan utföras automatiskt av vissa programmeringsspråkskompilatorer, avsiktligt genom att använda ett optimeringsprogram, eller manuellt av programmerare som går igenom källkoden och försöker göra specifika förbättringar.I allmänhet utförs programoptimering med ett specifikt slut i åtanke, eftersom det finns mycket få allmänna optimeringar som kan göras till ett program som inte på något sätt minskar det optimerade tillståndet för en annan del av programmet, vilket innebär att ett program vanligtvis kan kanVar optimerad för hastighets- eller resursanvändning, men vanligtvis inte båda.En komplikation som kan uppstå med vissa typer av optimering är att många programmeringsspråk på hög nivå ger en så stor abstraktion mellan inhemsk kod och datorspråket att optimering kan vara svårt eller omöjligt att implementera på alla plattformar i alla situationer, särskilt medTolkade språk som använder just-in-time (JIT) sammanställning.

Ett viktigt koncept i programoptimering är idén att en optimering vanligtvis kommer med någon form av pris.Ett exempel på detta är att när en kod är optimerad för att köra snabbare kan ökningen i hastighet komma till priset för kodläsbarhet, minnesanvändning, programflexibilitet eller ett antal andra kostnader.Detta innebär att programoptimering måste vara en riktad process, med avsikt att göra en aspekt av ett program som fungerar på ett bättre sätt samtidigt som man är villig att offra effektiviteten hos andra aspekter.

Olika typer av programoptimering kan utföras i olika stadier avprogramutveckling.Under designen kan bred optimering göras genom att säkerställa att ett program verkar fungera effektivt.När du arbetar med faktiska källkod kan optimeringar inkludera att se till att det inte finns några främmande kommandon, repetitiva samtal eller dåligt skrivna funktioner.Vid sammanställningen utförs många optimeringar automatiskt av kompilatorn och kan styras genom användning av olika kompilatoromkopplare eller direktiv av programmeraren.

Automatiska optimeringar, som kan uppstå med en kompilator eller dedikationsprogram, kan ofta involvera tricks som är som är som ärFör komplicerat för att vara praktiskt för mänskliga programmerare.Detta kan involvera rörliga instruktioner i ett program så att de utförs ur den ordning som ursprungligen skrivits men på ett mer effektivt sätt för processorn.Det kan också involvera avsiktligt flytta resurser som minnesblock så att de kan nås snabbare.De flesta programoptimering sker automatiskt på kompilatornivån.

En komplikation med upprepad eller aggressiv programoptimering är att när ett program har modifierats för att köra mer effektivt blir det i allmänhet svårare att modifiera för andra ändamål, till exempel att lägga till funktionalitet ellerfixa buggar.Detta kan uppstå när optimeringar börjar låsa in inställda programbeteenden som inte lätt ändras eller anpassas till ny kod utan att kräva att alla optimeringar ångras.En större fråga är att i många fall blir ett optimerat program mindre mänskligt läsbart, eftersom tricks och genvägar används istället för endast kortfattade kommandon och klassiska kontrollstrukturer.Av dessa skäl finns det ofta en nivå av programoptimering där det är acceptabelt att stoppa, även om drastiska kodändringar kan göra att ett program fungerar något mer effektivt.