Rust 바로 옆에서 작성하는 TSX 클라이언트
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 | 기본 시스템 창 |
|---|
| 메모리 사용량, macOS | ~20 MB | ~19 MB | ~17 MB |
|---|
| Private dirty 메모리, 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 | |
|---|
플랫폼별 크기: nsh init의 hello world | 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 다운로드 | — | — |
|---|
릴리스 빌드 기준입니다. 유휴 상태의 메모리: macOS footprint는 Apple M3에서 측정했으며(카운터 앱과 Rust 템플릿은 1200 × 800, 시스템 창은 480 × 640에 레이블 하나), Linux private dirty 메모리는 NVIDIA RTX 3060 Ti에서 측정했고(nsh init의 TSX 및 Rust 템플릿과 레이블 하나가 있는 GTK 창, 모두 480 × 640), Windows는 private working set입니다. RSS와 USS를 포함한 각 플랫폼의 측정값은 보고서에 있습니다. 크기: nsh package의 릴리스 빌드이며 링크 타임 최적화와 strip을 적용했습니다. TSX 실행 파일에는 QuickJS 런타임이 포함되고 앱 코드는 1 KB 미만입니다. 패키지는 macOS에서는 zip으로 압축한 .app, Linux에서는 .tar.gz, Windows에서는 .zip이며, 웹에서는 브라우저가 내려받는 런타임과 앱의 크기입니다. 전체 성능 보고서