Skip to main content

Hva er programoptimalisering?

Programoptimalisering er prosessen med å endre et dataprogram på en måte som får programmet til å utføre raskere, konsumere færre ressurser eller generelt fungere med et høyere effektivitetsnivå.Oppgaven med optimalisering kan utføres automatisk av noen programmeringsspråklige kompilatorer, med vilje ved å bruke et optimaliseringsprogram, eller manuelt av programmerere som går gjennom kildekode og prøver å gjøre spesifikke forbedringer.Generelt utføres programoptimalisering med en spesifikk ende i tankene, fordi det er veldig få generelle optimaliseringer som kan gjøres til et program som ikke på noen måte reduserer den optimaliserte tilstanden til en annen del av programmet, noe som betyr at et program vanligvis kanvære optimalisert for hastighet eller ressursbruk, men vanligvis ikke begge deler.En komplikasjon som kan oppstå med noen typer optimalisering er at mange programmeringsspråk på høyt nivå gir et så stort abstraksjonsnivå mellom naturlig kode og dataspråket som optimalisering kan være vanskelig eller umulig å implementere på alle plattformer i alle situasjoner, spesielt medTolkede språk som bruker Just-in-Time (JIT) -samling.

Et viktig konsept i programoptimalisering er ideen om at en optimalisering vanligvis kommer med en slags pris.Et eksempel på dette er at når et stykke kode er optimalisert for å kjøre raskere, kan økningen i hastigheten komme til prisen for kodelesbarhet, minnebruk, programfleksibilitet eller en rekke andre kostnader.Dette betyr at programoptimalisering må være en målrettet prosess, med den hensikt å gjøre ett aspekt av et program til å fungere på en bedre måte mens du er villig til å ofre effektiviteten til andre aspekter.

Ulike typer programoptimalisering kan utføres i forskjellige stadier avProgramutvikling.Under design kan bred optimalisering gjøres ved å sikre at et program ser ut til å kjøre effektivt.Når du jobber med faktisk kildekode, kan optimaliseringer inkludere å sikre at det ikke er noen fremmede kommandoer, repeterende samtaler eller dårlig skriftlige funksjoner.Ved kompilering utføres mange optimaliseringer automatisk av kompilatoren og kan styres gjennom bruk av forskjellige kompilatorbrytere eller direktiver av programmereren.

Automatiske optimaliseringer, som kan oppstå med en kompilator eller dedikasjonsoptimaliseringsprogram, kan ofte innebære triks som erFor komplisert til å være praktisk for menneskelige programmerere.Dette kan innebære å flytte instruksjoner i et program slik at de utføres ut av ordren som opprinnelig ble skrevet, men på en mer effektiv måte for prosessoren.Det kan også innebære med vilje skifte ressurser som minneblokker, slik at de kan nås raskere.Mest programoptimalisering skjer automatisk på kompilatornivå.

En komplikasjon med gjentatt eller aggressiv programoptimalisering er at når et program har blitt endret for å kjøre mer effektivt, blir det generelt vanskeligere å endre for andre formål, for eksempel å legge til funksjonalitet ellerfikse feil.Dette kan oppstå når optimaliseringer begynner å låse inn fast programatferd som ikke lett blir endret eller tilpasset ny kode uten å kreve at alle optimaliseringer blir angret.Et større spørsmål er at i mange tilfeller blir et optimalisert program mindre menneskelig lesbart, fordi triks og snarveier brukes i stedet for bare kortfattede kommandoer og klassiske kontrollstrukturer.Av disse grunner er det ofte et nivå av programoptimalisering som det er akseptabelt å stoppe, selv om drastiske kodemodifikasjoner kan få et program til å fungere litt mer effektivt.