Производительность
Ориентировочные цифры Chromium для документации и README — не регрессионные сюиты с soft-ceiling (test:perf / bench:e2e).
Что измеряем
Последовательные put/get и index query через createDatabase (mode: 'shared') против тех же операций на Dexie (IndexedDB в main thread). Плюс показатель cross-tab subscribe fan-out для сценария SharedWorker (у Dexie в этом бенче нет эквивалентного пути).
Оговорки
- Одна машина и один прогон — абсолютные ops/s зависят от загрузки CPU; сравнивайте соотношения внутри одного прогона.
- Dexie — честный baseline IndexedDB для CRUD в одной вкладке. Он не включает live sync через SharedWorker.
- worker-sync-db платит за RPC + SharedWorker на каждой операции; это осознанная цена консистентности между вкладками.
Актуальный marketing-сниппет
Закоммиченные результаты npm run bench:marketing лежат в репозитории в docs/benchmarks/.
| Нагрузка | worker-sync-db | Dexie (baseline) | Заметки |
|---|---|---|---|
| Put throughput (200 sequential) | 2.69k ops/s | 4.45k ops/s | Same docs; WSD pays SharedWorker RPC |
| Get throughput (200 sequential) | 8.44k ops/s | 14.18k ops/s | Key lookup |
| Put latency p50 / p95 | 0.20 / 0.50 ms | 0.20 / 0.40 ms | Single-op samples (n=50) |
| Get latency p50 / p95 | 0.10 / 0.20 ms | 0.10 / 0.20 ms | Single-op samples (n=50) |
| Cross-tab fan-out (40 puts → 2nd tab) | 690 events/s (58.0 ms wall) | — | Dexie has no SharedWorker multi-tab path |
Последний прогон: 2026-10-09 · Chromium (Playwright Desktop Chrome)
Интерактивные бенчи
В сборке демо также есть опциональные страницы бенчей (тот же деплой Pages):
Пересобирайте закоммиченные сниппеты после заметных изменений клиента/worker — см. docs/benchmarks/README.md.