Hopp til innhold
NorscodeNorscode

Veien til native ytelse

ArtikkelAv Norscode-prosjektet

Hvordan Norscode beveger seg fra en kjøretid mot native maskinkode med AOT — og hva det ærlig betyr for farten.

Trinn mot native ytelse Tolket Bytecode-VM AOT + GC Metallnivå Norscode i dag på vei hit Rust, C

Et vanlig spørsmål er hvor raskt Norscode egentlig er, og hvor raskt det kan bli. Det korte svaret: språket beveger seg oppover, trinn for trinn, og målet er native ytelse — uten å gi slipp på lesbarhet og trygghet.

Fra kjøretid til maskinkode

I dag kjøres et ferdig program som en lenket pakke via kjøretiden. Det er kompilert og statisk typet, og godt foran tolkede språk — men mellom programmet og maskinen ligger fortsatt et lag. Neste steg er AOT: å kompilere rett til native maskinkode for Linux, macOS og Windows. Da forsvinner mellomlaget, og du sitter igjen med en helt vanlig kjørbar fil.

Hva AOT gir

Å fjerne tolke-laget er det største enkeltspranget et språk kan ta i ytelse. Regnetung kode som før gikk gjennom kjøretiden, kjøres nå direkte av maskinen. For de aller fleste tjenester betyr det at ytelse slutter å være noe du tenker på.

Ærlig om taket

Norscode har en søppelsamler som rydder minnet for deg. Det er en stor del av hvorfor språket er trygt og lettlest — og samtidig grunnen til at det aller siste laget av ytelse tilhører språk med manuell minnekontroll, som Rust og C. Med AOT havner Norscode i selskap med raske, kompilerte språk som Go og C#: mer enn nok for nesten alt, men ikke helt på metallet.

Bygges nå

Verktøykjeden har allerede byggeklossene for dette — kodegenerering for x86-64 og ARM64, og skriving av native kjørbare filer for de tre store plattformene. Det er ikke ferdig, og vi lover ikke tall vi ikke har målt. Men retningen er lagt, og den er lagt uten å ofre det Norscode er til for.

Les også

Tilbake til oversikten