Performance
Elide is built on top of GraalVM and Truffle. This core difference leads to significant performance advantages, especially with regard to polyglot programming.
Elide uses GraalVM in place of V8 or JSC (used by Node/Deno and Bun, respectively).
GraalVM + Truffle
Instead of implementing just one language (V8 implements JavaScript, CPython implements Python, and so on), GraalVM and Truffle, together, constitute an abstract framework for authoring a high-performance JIT interpreter and compiler.
Languages are simply dialects (Truffle) into this shared backend (Graal). Elide wires together the APIs necessary to make this into a luxurious experience.
Some notes about why GraalVM + Truffle is so fast:
Graal is a state-of-the-art optimizing compiler, implementing advanced code generation and speculative optimization techniques.
Graal can see across language borders, enabling inlining across languages and other compiler tricks. It's all "just code" to the Graal compiler, whether it is Python, JavaScript, or something else.
Graal can collect garbage across borders, so pauses are minimized and cohesive.
Language Performance
Notes about pure language execution performance.
JavaScript, TypeScript, WASM
Elide is competitive with Node and Deno at execution of JavaScript, TypeScript, and WebAssembly.
Pure JS/TS startup time for Elide can be very fast:
Runtime | Language | Case | Startup (cold) | Server hit (hot) |
---|---|---|---|---|
Bun | JavaScript/TypeScript | Hello World | ~6.5ms | ~1.5ms |
Node | JavaScript Only | Hello World | ~10ms | ~7ms |
Deno | JavaScript Only | Hello World | ~15ms | ~71ms |
Elide | JavaScript/TypeScript | Hello World | ~20ms | ~2ms |
Python
Elide is competitive with modern optimizing Python runtimes like PyPy and often beats CPython. GraalPython provides continuous benchmarks upstream.
