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 optimeras för hastighet 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 abstraktionsnivå mellan inbyggd kod och datorspråket att optimering kan varasvårt eller omöjligt att implementera på alla plattformar i alla situationer, särskilt med tolkade 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 av programutvecklingen. Under designen kan bred optimering göras genom att säkerställa att ett program verkar fungera effektivt. När du arbetarG Med faktiska källkod kan optimeringar inkludera att säkerställa 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 ett kompilator- eller dedikationsoptimeringsprogram, kan ofta involvera tricks som är för komplexa för att vara praktiska 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å innebära 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 mer diFör att modifiera för andra ändamål, till exempel att lägga till funktionalitet eller fixa 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 kodmodifieringar kan göra att ett program fungerar något mer effektivt.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?