Hvad er programoptimering?

Programoptimering er processen med at ændre et computerprogram på en måde, der får programmet til at udføre hurtigere, forbruge færre ressourcer eller generelt fungere med et højere effektivitetsniveau. Opgaven med optimering kan udføres automatisk af nogle programmeringssprogkomponenter, med vilje ved hjælp af et optimeringsprogram, eller manuelt af programmerere, der gennemgår kildekoden og forsøger at foretage specifikke forbedringer. Generelt udføres programoptimering med et specifikt mål for øje, fordi der er meget få generelle optimeringer, der kan foretages til et program, der ikke på en eller anden måde reducerer den optimerede tilstand for en anden del af programmet, hvilket betyder, at et program normalt kan være optimeret til hastighed eller ressourceforbrug, men normalt ikke begge dele. En komplikation, der kan forekomme med nogle typer optimering, er, at mange programmeringssprog på højt niveau giver et så stort abstraktionniveau mellem native code og computersproget, at optimering kan være vanskelig eller umulig at implementere på tværs af alle platforme i alle situationer, især med fortolkede sprog, der bruger just-in-time (JIT) -samling.

Et vigtigt koncept i programoptimering er tanken om, at en optimering normalt leveres med en slags pris. Et eksempel på dette er, at når et stykke kode er optimeret til at køre hurtigere, kan stigningen i hastighed komme til prisen for kodelæsbarhed, hukommelsesforbrug, programfleksibilitet eller en række andre omkostninger. Dette betyder, at programoptimering skal være en målrettet proces med det formål at få et aspekt af et program til at fungere på en bedre måde, samtidig med at man er villig til at ofre effektiviteten af ​​andre aspekter.

Forskellige typer programoptimering kan udføres på forskellige stadier af programudviklingen. Under design kan bred optimering udføres ved at sikre, at et program ser ud til at køre effektivt. Når man arbejder med faktisk kildekode, kan optimeringer omfatte at sikre, at der ikke er nogen udvendige kommandoer, gentagne opkald eller dårligt skrevne funktioner. Ved kompilering udføres mange optimeringer automatisk af kompilatoren og kan føres gennem brug af forskellige kompilatoromskiftere eller direktiver af programmereren.

Automatiske optimeringer, som kan forekomme med et kompilator- eller dedikationsoptimeringsprogram, kan ofte involvere tricks, der er for komplekse til at være praktiske for menneskelige programmerere. Dette kan involvere flytteinstruktioner i et program, så de udføres i den rækkefølge, der oprindeligt blev skrevet, men på en mere effektiv måde for processoren. Det kan også involvere med vilje at skifte ressourcer, såsom hukommelsesblokke, så de kan få adgang hurtigere. De fleste programoptimeringer sker automatisk på compilerniveau.

En komplikation med gentagen eller aggressiv programoptimering er, at når et program er blevet ændret til at køre mere effektivt, bliver det generelt vanskeligere at ændre til andre formål, såsom at tilføje funktionalitet eller rette bugs. Dette kan opstå, når optimeringer begynder at låse fast indstillede programadfærd, der ikke let ændres eller tilpasses til ny kode uden at kræve, at alle optimeringer er fortrydt. Et større problem er, at et optimeret program i mange tilfælde bliver mindre menneskeligt læseligt, fordi der bruges tricks og genveje i stedet for kun kortfattede kommandoer og klassiske kontrolstrukturer. Af disse grunde er der ofte et niveau af programoptimering, hvor det er acceptabelt at stoppe, selvom drastiske kodemodifikationer muligvis får et program til at arbejde lidt mere effektivt.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?