Клиент на TSX — вплотную к Rust
В NSH на JS написан только код вашего приложения. Реактивный граф, рендерер, раскладка и каждый модуль — на Rust. Приложения на TSX и на Rust используют один и тот же нативный конвейер выполнения.
- 120 FPS
- 22 живых спарклайна, книга заявок и лента сделок обновляются вместе, p95 кадра менее 4 ms
- ~0.1 ms
- Запуск движка (75–155 µs)
- ~1 ms
- Первый кадр приложения-счётчика
- ~0.12 ms
- Одно нажатие: от события до коммита
- < 1 KB
- Код приложения hello world
- ~1.1 MB
- Загрузка TSX-приложения в вебе (рантайм Wasm)
Измерения небольших приложений: на несколько MB больше, чем голое системное окно | TSX | Rust | Голое системное окно |
|---|
| Memory footprint, macOS | ~20 MB | ~19 MB | ~17 MB |
|---|
| Private dirty memory, Linux (GTK, GL) | ~48 MB | ~44 MB | ~38 MB |
|---|
| Сверх системного окна, macOS / Linux | +3 / +9 MB | +2 / +5 MB | |
|---|
| Private working set, Windows | ~15 MB | ~14 MB | |
|---|
Размер на каждой платформе: hello world из nsh init | Исполняемый файл TSX | Пакет TSX | Исполняемый файл Rust | Пакет 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 | — | — |
|---|
Релизные сборки. Память в покое: footprint macOS на Apple M3 (приложение-счётчик и шаблон Rust при 1200 × 800; системное окно содержит одну надпись при 480 × 640); private dirty memory Linux на NVIDIA RTX 3060 Ti (шаблоны TSX и Rust из nsh init и окно GTK с одной надписью, всё при 480 × 640); private working set Windows. Способ измерения для каждой платформы, включая RSS и USS, приведён в отчёте. Размеры: релизные сборки nsh package, с оптимизацией на этапе компоновки (link-time optimization) и без символов; исполняемый файл TSX содержит рантайм QuickJS, код приложения занимает менее 1 KB; пакет — это упакованный в zip .app на macOS, .tar.gz на Linux и .zip на Windows; для веба — то, что скачивает браузер: рантайм и приложение. Полный отчёт о производительности