You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/operations/benchmarking.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,7 @@ S1은 현재 공개 속도 간판이다. S1L은 외부 후보가 S1의 병렬 wo
54
54
| S1L single-kernel numpy latency |[측정됨](../../mainPlan/browser-os-north-star/benchmarks/s1l-pyproc-2026-07-15.json)| 측정 필요 |[측정됨](../../mainPlan/browser-os-north-star/benchmarks/s1l-jupyterlite-2026-07-15.json)|[측정됨](../../mainPlan/browser-os-north-star/benchmarks/s1l-marimo-wasm-2026-07-15.json)| S1 대체가 아니라 별도 single-lane 보조 축 |
55
55
| S2 process map |[측정됨](../../mainPlan/browser-os-north-star/benchmarks/s2-pyproc-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s2-webvm-na-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s2-jupyterlite-na-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s2-marimo-wasm-na-2026-07-15.json)|`PyProc.map` process pool 계약. 같은 API 후보가 없으면 N/A |
56
56
| S3 browser server |[측정됨](../../mainPlan/browser-os-north-star/benchmarks/s3-pyproc-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s3-webvm-na-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s3-jupyterlite-na-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s3-marimo-wasm-na-2026-07-15.json)| pyproc `VirtualOrigin`/ASGI Service Worker URL contract. 같은 계약 후보가 없으면 N/A |
57
-
| S4 machine resume |`bench:artifact --scenario S4`| 측정 필요 | 측정 필요 | 측정 필요 | 파일 이미지, persistence, resume hook 동등성|
57
+
| S4 machine resume |[측정됨](../../mainPlan/browser-os-north-star/benchmarks/s4-pyproc-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s4-webvm-na-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s4-jupyterlite-na-2026-07-15.json)|[N/A](../../mainPlan/browser-os-north-star/benchmarks/s4-marimo-wasm-na-2026-07-15.json)| signed `.pymachine`, trusted open, `resume.py` resource reopen. 같은 계약 후보가 없으면 N/A|
- S4는 pyproc의 “브라우저 안 machine image” 차별화 축이다. 단순 파일 저장이 아니라 signer trust, `/home/web`, `resume.py`, SQLite connection 재개설까지 product consumer gate에서 묶인다.
2189
+
- pyproc 기준 S4는 signed `.pymachine` export median 76ms, trusted open median 2264ms, image 10.8MB, resume rows 2-2다.
2190
+
- WebVM, JupyterLite, marimo WASM은 0점 처리하지 않고 N/A로 봉인했다. 이유는 같은 pyproc signed `.pymachine`/trusted open/`resume.py` resource reopen contract를 제공하는 후보로 측정하지 않았기 때문이다.
2191
+
- S0-S4까지 속도 비교의 기본 축이 닫혔다. pyproc의 공개 속도 간판은 여전히 S1 병렬 worker pool이고, OS 차별화 증거는 S2 process map, S3 browser server, S4 machine resume다.
2192
+
2193
+
NEXT:
2194
+
2195
+
1. WebVM의 S1L 또는 Python shell 단일 계산 latency를 분리할 가치가 있는지 판정한다.
2196
+
2. README benchmark 섹션에 S0-S4를 모두 올릴 경우, 숫자보다 계약 차이를 먼저 설명한다.
2197
+
3. 다음 구조 강화는 benchmark artifact schema v2 또는 product-facing capability matrix 중 하나로 잡는다.
Copy file name to clipboardExpand all lines: mainPlan/browser-os-north-star/06-speed-comparison.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# 06. 속도 정면 비교 계약
2
2
3
-
상태: pyproc S0/S1/S2/S3 기준 artifact 기록. S0와 S0C는 pyproc, WebVM, JupyterLite, marimo WASM을 같은 표에 합쳤다. WebVM, JupyterLite, marimo WASM은 같은 S1, S2, S3 계약을 N/A artifact로 봉인. S1L은 pyproc, JupyterLite, marimo WASM을 같은 브라우저에서 측정.
3
+
상태: pyproc S0/S1/S2/S3/S4 기준 artifact 기록. S0와 S0C는 pyproc, WebVM, JupyterLite, marimo WASM을 같은 표에 합쳤다. WebVM, JupyterLite, marimo WASM은 같은 S1, S2, S3, S4 계약을 N/A artifact로 봉인. S1L은 pyproc, JupyterLite, marimo WASM을 같은 브라우저에서 측정.
4
4
5
5
## 목표
6
6
@@ -48,6 +48,8 @@
48
48
| 2026-07-15 | S2 external candidates |[webvm N/A](benchmarks/s2-webvm-na-2026-07-15.json), [jupyterlite N/A](benchmarks/s2-jupyterlite-na-2026-07-15.json), [marimo-wasm N/A](benchmarks/s2-marimo-wasm-na-2026-07-15.json)|[s2-compare-2026-07-15.md](benchmarks/s2-compare-2026-07-15.md)| 같은 `PyProc.map` process pool API 계약 없음 |
49
49
| 2026-07-15 | S3 pyproc |[s3-pyproc-2026-07-15.json](benchmarks/s3-pyproc-2026-07-15.json)|[s3-compare-2026-07-15.md](benchmarks/s3-compare-2026-07-15.md)| GREEN, 3 samples, `VirtualOrigin` POST roundtrip median 18ms, p95 18ms, maxErr 0 |
| S2 process map |[artifact](benchmarks/s2-pyproc-2026-07-15.json)|[N/A](benchmarks/s2-webvm-na-2026-07-15.json)|[N/A](benchmarks/s2-jupyterlite-na-2026-07-15.json)|[N/A](benchmarks/s2-marimo-wasm-na-2026-07-15.json)| pyproc serial 73ms, process pool 43ms, median speedup 1.61x. 외부 후보는 같은 `PyProc.map` process pool API 계약 없음 |
63
65
| S3 browser server |[artifact](benchmarks/s3-pyproc-2026-07-15.json)|[N/A](benchmarks/s3-webvm-na-2026-07-15.json)|[N/A](benchmarks/s3-jupyterlite-na-2026-07-15.json)|[N/A](benchmarks/s3-marimo-wasm-na-2026-07-15.json)| pyproc `VirtualOrigin` POST roundtrip median 18ms, p95 18ms. 외부 후보는 같은 pyproc `VirtualOrigin`/ASGI Service Worker URL contract 없음 |
| S4 machine resume |[artifact](benchmarks/s4-pyproc-2026-07-15.json)|[N/A](benchmarks/s4-webvm-na-2026-07-15.json)|[N/A](benchmarks/s4-jupyterlite-na-2026-07-15.json)|[N/A](benchmarks/s4-marimo-wasm-na-2026-07-15.json)|pyproc export 76ms, open 2264ms, image 10.8MB, resume rows 2-2. 외부 후보는 같은 pyproc signed `.pymachine`/trusted open/`resume.py` resource reopen contract 없음|
65
67
66
68
`bench:speed`의 기본 S1 조건은 `workers=4`, `size=1024`, `samples=3`이다. 사람용 Speed Lab UI는 반응성을 위해 768 기본값을 쓰지만, runner는 URL query로 canonical 크기를 명시한다.
S4 artifact는 `test:consumer`의 signed `.pymachine` timing을 machine resume sample로 승격한다. 설치 패키지 public import, signed export, trusted public key open, `/home/web/resume.py` 재개설, SQLite row 증가가 모두 통과한 값만 받는다.
| candidate | ok | samples | export median ms | export p95 ms | open median ms | open p95 ms | image MB median | resume rows | maxErr | browser | commit | source |
0 commit comments