Un client scritto in TSX, a fianco di Rust
In NSH solo il codice della tua app è JS. Il grafo reattivo, il renderer, il layout e ogni modulo sono Rust. Le app TSX e Rust condividono la stessa pipeline di esecuzione nativa.
- 120 FPS
- 22 sparkline live, un order book e un tape che si aggiornano insieme, frame p95 sotto i 4 ms
- ~0.1 ms
- Avvio del motore (75–155 µs)
- ~1 ms
- Primo frame di un'app contatore
- ~0.12 ms
- Un tocco, dall'evento al commit
- < 1 KB
- Il codice app di un hello world
- ~1.1 MB
- Download di un'app TSX sul web (runtime Wasm)
Piccole app misurate: pochi MB sopra la finestra di sistema nuda | TSX | Rust | Finestra di sistema nuda |
|---|
| Impronta di memoria, macOS | ~20 MB | ~19 MB | ~17 MB |
|---|
| Memoria private dirty, Linux (GTK, GL) | ~48 MB | ~44 MB | ~38 MB |
|---|
| Sopra la finestra di sistema, macOS / Linux | +3 / +9 MB | +2 / +5 MB | |
|---|
| Working set privato, Windows | ~15 MB | ~14 MB | |
|---|
Dimensioni su ogni piattaforma: l'hello world di nsh init | Eseguibile TSX | Pacchetto TSX | Eseguibile Rust | Pacchetto Rust |
|---|
| macOS (Apple silicon) | 19.8 MB | 9.5 MB | 12.4 MB | 6.0 MB |
|---|
| Linux (x86_64) | 25.7 MB | 11.6 MB | 16.5 MB | 7.5 MB |
|---|
| Windows (x86_64) | 28.6 MB | 12.4 MB | 15.0 MB | 6.7 MB |
|---|
| Web | — | download di ~1.1 MB | — | — |
|---|
Build release. Memoria a riposo: footprint di macOS su un Apple M3 (l'app contatore e il template Rust a 1200 × 800; la finestra di sistema contiene una label a 480 × 640); memoria private dirty di Linux su una NVIDIA RTX 3060 Ti (i template TSX e Rust di nsh init e una finestra GTK con una label, tutti a 480 × 640); working set privato di Windows. La misura di ogni piattaforma, con RSS e USS, è nel report. Dimensioni: build release di nsh package, con link-time optimization e simboli rimossi; l'eseguibile TSX contiene il runtime QuickJS, il codice dell'app è sotto 1 KB; il pacchetto è l'.app compresso in zip su macOS, il .tar.gz su Linux e lo .zip su Windows; sul web, ciò che il browser scarica, runtime e app. Il report completo sulle prestazioni