Skip to main content

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 fungerer med et højere effektivitetsniveau.Opgaven med optimering kan udføres automatisk af nogle programmeringssprogskompilatorer, med vilje ved at bruge et optimeringsprogram eller manuelt af programmerere, der træder gennem kildekode og forsøger at foretage specifikke forbedringer.Generelt udføres programoptimering med en bestemt afslutning i tankerne, fordi der er meget få generelle optimeringer, der kan laves til et program, der ikke på en eller anden måde reducerer den optimerede tilstand af en anden del af programmet, hvilket betyder, at et program normalt kanVær 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 niveau af abstraktion mellem indbygget kode og computersproget, at optimering kan være vanskeligt eller umuligt at implementere på tværs af alle platforme i alle situationer, især medTolkede sprog, der bruger Just-in-Time (JIT) -kompilering.

Et vigtigt koncept i programoptimering er ideen om, at en optimering normalt kommer 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 på kodelæsbarhed, hukommelsesbrug, programfleksibilitet eller en række andre omkostninger.Dette betyder, at programoptimering skal være en målrettet proces med det formål at gøre et aspekt af et program,Programudvikling.Under design kan bredt optimering udføres ved at sikre, at et program ser ud til at køre effektivt.Når du arbejder med faktisk kildekode, kan optimeringer omfatte at sikre, at der ikke er nogen fremmede kommandoer, gentagne opkald eller dårligt skrevne funktioner.Ved samling udføres mange optimeringer automatisk af kompilatoren og kan styres ved hjælp af forskellige kompilatorafbrydere eller direktiver fra programmereren.

automatiske optimeringer, som det kan forekomme med et kompilator- eller dedikationsoptimeringsprogram, kan ofte involvere tricks, der erFor kompliceret til at være praktisk for menneskelige programmerere.Dette kan involvere bevægelige instruktioner i et program, så de udføres ud af den rækkefølge, der oprindeligt er skrevet, men på en mere effektiv måde for processoren.Det kan også indebære med vilje at skifte ressourcer som hukommelsesblokke, så de kan fås hurtigere.De fleste programoptimering forekommer automatisk på kompileringsniveau.

En komplikation med gentaget eller aggressivt programoptimering er, at når et program først er blevet ændret til at køre mere effektivt, bliver det generelt vanskeligere at ændre til andre formål, såsom tilføjelse af funktionalitet ellerRettelse af bugs.Dette kan forekomme, når optimeringer begynder at låse ind sæt programadfærd, der ikke let ændres eller tilpasses til ny kode uden at kræve, at alle optimeringer fortrydes.Et større problem er, at et optimeret program i mange tilfælde bliver mindre menneskelig læsbar, fordi tricks og genveje bruges 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 fungere lidt mere effektivt.