Um cliente escrito em TSX, ao lado do Rust
No NSH, apenas o código do seu app é JS. O grafo reativo, o renderizador, o layout e todos os módulos são Rust. Apps em TSX e em Rust compartilham o mesmo pipeline de execução nativo.
- 120 FPS
- 22 sparklines ao vivo, um order book e um tape atualizando juntos, frame p95 abaixo de 4 ms
- ~0.1 ms
- Inicialização do engine (75–155 µs)
- ~1 ms
- Primeiro frame de um app contador
- ~0.12 ms
- Um toque, do evento ao commit
- < 1 KB
- Código do app de um hello world
- ~1.1 MB
- Download de um app TSX na web (runtime Wasm)
Apps pequenos medidos: alguns MB acima da janela de sistema pura | TSX | Rust | Janela de sistema pura |
|---|
| Consumo de memória (footprint), macOS | ~20 MB | ~19 MB | ~17 MB |
|---|
| Memória private dirty, Linux (GTK, GL) | ~48 MB | ~44 MB | ~38 MB |
|---|
| Acima da janela de sistema, macOS / Linux | +3 / +9 MB | +2 / +5 MB | |
|---|
| Working set privado, Windows | ~15 MB | ~14 MB | |
|---|
Tamanho em cada plataforma: hello world do nsh init | Executável TSX | Pacote TSX | Executável Rust | Pacote 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 | — | ~1.1 MB de download | — | — |
|---|
Builds de release. Memória em repouso: footprint no macOS em um Apple M3 (o app contador e o template Rust em 1200 × 800; a janela de sistema contém um label em 480 × 640); memória private dirty no Linux em uma NVIDIA RTX 3060 Ti (os templates TSX e Rust do nsh init e uma janela GTK com um label, todos em 480 × 640); working set privado no Windows. A medição de cada plataforma, com RSS e USS, está no relatório. Tamanhos: builds de release do nsh package, com link-time optimization e stripped; o executável TSX contém o runtime QuickJS, e o código do app tem menos de 1 KB; o pacote é o .app compactado em zip no macOS, o .tar.gz no Linux e o .zip no Windows; na web, o que o navegador baixa, runtime e app. O relatório completo de desempenho