Praktický příklad, kde na jedné straně bude (předem kompilovaný do nativního kódu*) Rust a na druhé straně jiný jazyk s JITem, který bude při dlouhém běhu a dostatku RAM rychlejší, z fleku nevytáhnu. Nabízí se ale jiná zajímavá srovnání:
a. GraalVM JIT vs. native-image. Máme srovnání stejného se stejným, jednou JIT, jednou kompletní překlad před spuštěním. JIT žere víc RAM a spuštění trvá déle, ale jakmile máme spuštěno a zahřáto, typicky je to rychlejší než native-image.
b. Teoreticky bychom podobné srovnání mohli udělat i pro Rust, protože GraalVM umí LLVM (Sulong). Takže bychom mohli mít Rust s low-level JITem. Prakticky tu může být více problémů a neznámých, a přecejen Sulong – jakkoli je zajímavý – asi nebude tím hlavním tahounem GraalVM.
EDIT: Důvod, proč JIT může být rychlejší, je, že JIT si může dovolit dělat i různé spekulativní optimalizace (pokud optimalizace selže, může to deoptimalizovat a klidně zkompilovat znovu) a statistiky za běhu.
*) Obecně to není jediná možnost u Rustu, ale tiše jsem předpokládat, že to máte na mysli.
27. 2. 2022, 00:17 editováno autorem komentáře