Mukautuva optimointi

Mukautuva optimointi  on tietojenkäsittelytieteen ja ohjelmoinnin tekniikka, joka kääntää dynaamisesti uudelleen ohjelmakappaleet nykyisen suoritusprofiilin perusteella . Yksinkertaisimmassa toteutuksessaan adaptiivinen optimoija voi yksinkertaisesti valita lennossa tapahtuvan kääntämisen ja ohjeiden tulkinnan välillä. Toisella tasolla mukautuva optimointi voi hyödyntää paikallisia tietoolosuhteita haarojen optimoinnissa ja käyttää sisäistä laajennusta kontekstin vaihtamisen vähentämiseen . 

Harkitse hypoteettista pankkisovellusta, joka käsittelee tapahtumat peräkkäin. Nämä tapahtumat voivat olla alaskirjauksia, maksuja ja monia muita epäselviä tapahtumia. Ohjelmaa suoritettaessa todelliset tiedot voivat muodostua kymmenien tuhansien veloitusten selvittämisestä ilman yhtä maksukäsittelyä ja ilman yhtäkään veloituskäsittelyä vilpillisen tilin kautta. Mukautuva optimoija kääntää natiivikoodiin optimoiden sen yleistä tapausta varten. Jos järjestelmä alkaa sen sijaan käsitellä kymmeniä tuhansia lisäyksiä, adaptiivinen optimoija kääntää uudelleen konekoodiksi optimoidakseen uusia yleisiä ehtoja. Nämä optimoinnit voivat sisältää toimintojen lisäämisen tai virheenkäsittelykoodin siirtämisen toissijaiseen välimuistiin.

Esimerkkejä

Deoptimointi

Joissakin järjestelmissä, erityisesti Java-virtuaalikoneessa , useiden tavukoodikäskyjen suorittaminen voidaan todistettavasti kääntää päinvastaiseksi. Tämän ansiosta adaptiivinen optimoija voi tehdä riskialttiita oletuksia koodista. Yllä olevassa esimerkissä optimoija saattaa olettaa, että kaikki tapahtumat ovat veloituksia ja että kaikki tilinumerot ovat oikein. Kun nämä oletukset osoittautuvat vääriksi, adaptiivinen optimoija voi "pudota takaisin" oikeaan tilaan ja tulkita sitten tavukoodikäskyt oikein.

Katso myös

Muistiinpanot

  1. HP:n Dynamo . Käyttöpäivä: 7. joulukuuta 2014. Arkistoitu alkuperäisestä 5. helmikuuta 2012.

Kirjallisuus