Ohjelman optimointi
From Wikipedia, the free encyclopedia
Remove ads
Ohjelman optimointi on tietotekniikassa joukko menetelmiä, joilla ohjelmakoodin suoritusta tehostetaan. Tapauksesta riippuen optimointia voidaan tehdä esimerkiksi muistimäärän käytön, virran käytön tai suoritusajan suhteen. Optimointia voidaan tehdä kääntäjän asetuksilla ja itse ohjelmakoodin muokkaamisella. Tärkeysjärjestyksessä ensimmäisenä on aina ohjelman oikea ja luotettava toiminta, mutta on useita tilanteita joissa optimointia voidaan tarvita.[1]
Optimoinnin apuna voidaan käyttää profilointia "kuumien kohtien" (engl. hot spot) havaitsemiseen.
Kevyimmällä tasolla optimointi voi tarkoittaa selkeää ja yksinkertaista toteutusta ja syvemmällä tasolla toteutusmenetelmien muuttamista.[1]
Ohjelmakoodin lisäksi tietorakenteita muuttamalla voidaan parantaa ohjelman suoritusta: kielestä riippuen ongelmakohtia voivat olla monimutkaiset varaukset yksinkertaisille rakenteille tai useita välituloksia suorituksen aikana.[2] Muistiarkkitehtuurit kuten NUMA voivat vaatia erityistä suunnittelua.[3]
Remove ads
Esimerkkitapaus
void twiddle1(int *xp, int *yp)
{
*xp += *yp;
*xp += *yp;
}
void twiddle2(int *xp, int *yp)
{
*xp += 2* *yp;
}
Esimerkkitapauksessa on kaksi vaihtoehtoa, joissa muuttujan arvo lisätään kahdesti toiseen muuttujaan. Jälkimmäinen voi vaatia vähemmän muistioperaatioita, mutta mikäli osoittimetxp
ja yp
osoittavat samaan muistipaikkaan jälkimmäinen voi antaa virheellisen tuloksen.
Katso myös
Lähteet
Kirjallisuutta
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads