PGlite suite
OPFS VFS, PGlite OPFS AHP, IndexedDB, and in-memory run the same SQL workload.
Benchmarks / your browser, your results
Compare like-for-like storage backends with the configuration beside every result.
| Backend | Storage | Comparison |
|---|---|---|
| OPFS VFS | Persistent volume in OPFS | Memory or disk buffering, with selectable durability |
| PGlite OPFS AHP | Persistent access-handle pool | PGlite’s own OPFS backend; availability depends on browser limits |
| PGlite IndexedDB | Persistent IndexedDB database | The same SQL workload through PGlite’s IndexedDB backend |
| PGlite memory | Temporary process memory | A throughput reference with no persistence or reopen result |
We will publish only results that include the workload, browser, machine, versions, settings, and raw samples.
Read the methodologyUnderstand memory, IndexedDB, OPFS, buffering, and durability before comparing their speed.
OPFS VFS, PGlite OPFS AHP, IndexedDB, and in-memory run the same SQL workload.
Create, read, write, rename, delete, flush, and reopen operations test filesystem behavior directly.
Run filesystem benchmarks →Benchmarks / your browser, your results
Compare like-for-like storage backends with the configuration beside every result.
| Backend | Storage | Comparison |
|---|---|---|
| OPFS VFS | Persistent volume in OPFS | Memory or disk buffering, with selectable durability |
| PGlite OPFS AHP | Persistent access-handle pool | PGlite’s own OPFS backend; availability depends on browser limits |
| PGlite IndexedDB | Persistent IndexedDB database | The same SQL workload through PGlite’s IndexedDB backend |
| PGlite memory | Temporary process memory | A throughput reference with no persistence or reopen result |
We will publish only results that include the workload, browser, machine, versions, settings, and raw samples.
Collect a full result set → Read the methodologyUnderstand memory, IndexedDB, OPFS, buffering, and durability before comparing their speed.
OPFS VFS, PGlite OPFS AHP, IndexedDB, and in-memory run the same SQL workload.
Create, read, write, rename, delete, flush, and reopen operations test filesystem behavior directly.
Run filesystem benchmarks →One excluded warm-up and five measured rounds. Download one JSON file per browser.
+{progress}
++ Runs the 16 PGlite SQL cases and a 10,000-row transaction batch on OPFS VFS with disk and memory buffers, + IndexedDB, and a memory-only reference + {browser === 'safari' ? '. OPFS AHP is omitted on Safari.' : ', plus OPFS AHP.'} Also tests 1,000 files in both + VFS buffer modes. All persistent VFS tests use balanced durability; PGlite waits for filesystem synchronization. +
++ Keep this tab visible and the Mac awake. Each sample uses fresh storage and a fresh worker. Warm-ups prime + browser caches, not a reused worker. Preparation, close and cleanup are outside the workload timers. + Cancellation may wait for the current SQL case. +
+{error}
} + {report?.interrupted && ( ++ This collection was interrupted or backgrounded. Retain it for diagnosis and rerun before publication. +
+ )} + {report && !running && ( ++ {report.eligibleForReview + ? 'All checks passed. Ready for review before publication.' + : 'Incomplete or questionable collection. Download includes all results and errors.'}{' '} + {report.entries.filter((e) => !e.warmup && e.samples[0]?.status === 'ok').length} successful measured samples. +
+ )} + {report?.entries + .filter((e) => e.error || e.samples.some((s) => s.status !== 'ok')) + .map((e, index) => ( ++ {e.jobId}, round {e.round}: {e.error ?? e.samples.map((s) => s.error ?? s.status).join('; ')} +
+ ))} +Benchmarks / collection
Run the same collection on each Mac in Chrome, Safari, and optionally Firefox. Use a fresh regular profile with extensions off. Private browsing can restrict or change storage behavior.