Mikä on kaksivaiheinen käännös ja kuinka se parantaa suorituskykyä?
Kaksivaiheinen on termi, jota käytetään kääntäjän optimoinnin yhteydessä. Se viittaa tekniikkaan, jossa kääntäjä suorittaa kaksi kertaa lähdekoodin yli optimoidakseen sen suorituskyvyn. Ensimmäistä läpivientiä kutsutaan "etuosaksi" ja toista läpimenoksi "backend".
Etuosapassi vastaa lähdekoodin jäsentämisestä, sen syntaksin ja semantiikan tarkistamisesta ja koodin väliesityksen (IR) luomisesta. Tämä IR syötetään sitten taustaprosessiin, joka suorittaa koodille edistyneempiä optimointeja, kuten silmukan purkamisen, toimintojen lisäämisen ja kuolleen koodin eliminoinnin.
Kaksikierroksen avulla kääntäjä voi suorittaa aggressiivisempia optimointeja, jotka eivät ehkä ole mahdollisia yhden kierroksen lähestymistavalla. Tämä johtuu siitä, että taustapassilla on pääsy ohjelman koko IR:ään, minkä ansiosta se voi tehdä tietoisempia päätöksiä koodin optimoinnista.
Kaksikierrosta kääntäjiä käytetään yleisesti korkean suorituskyvyn laskentasovelluksissa, kuten tieteellisissä simulaatioissa ja videopelimoottorit, joissa suorituskyky on kriittinen. Niitä voidaan kuitenkin käyttää myös muun tyyppisissä sovelluksissa, kuten verkkoselaimissa ja mobiilisovelluksissa, joissa optimointi on tärkeää, mutta ei yhtä kriittistä.



