benchlab Explore tools
← Back to BenchLab
BENCHLAB / STORAGE

Storage Benchmark

Test memory throughput and browser-managed storage. These results are useful for comparisons, but they are not a direct SSD speed rating.

STORAGE TEST STATUS
Ready

Run the tests to measure data throughput.

Waiting to start
MEMORY

In-memory throughput

32 MiB
W

Buffer write

Fill a typed array with deterministic data

— MB/s
R

Buffer read

Read and aggregate values from the generated buffer

— MB/s
BROWSER STORAGE

IndexedDB throughput

8 MiB
W

Storage write

Write a temporary record to IndexedDB

— MB/s
R

Storage read

Retrieve the stored record from IndexedDB

— MB/s

Waiting to start

Tests use temporary in-memory data and a temporary IndexedDB database. They do not measure raw SSD throughput. Browser caching, storage policies and background activity affect results.

ABOUT THIS BENCHMARK

How to read the results

This page measures browser-managed memory and IndexedDB operations. It does not directly measure raw SSD or HDD speed, and its results are not equivalent to copying a file on a desktop operating system.

Workload sequence

  1. Allocate a 32 MiB Uint8Array.
  2. Fill every byte with deterministic data, then read every byte and aggregate a checksum.
  3. Open the temporary IndexedDB database and create the tests object store if needed.
  4. Create and fill an 8 MiB ArrayBuffer, then store it under temporary-payload.
  5. Retrieve that record, check its size, and verify bytes 0 and 100.

If the database was opened, it is closed and deletion is requested after success or failure. A deletion error is reported to the console rather than changing the displayed result.

Timing and metrics

Memory write/read
Each synchronous loop is timed with performance.now(). The displayed rate is (bytes / (1024 × 1024)) / (milliseconds / 1000).
IndexedDB write/read
The write measures from the read/write transaction start until it completes. The read measures from the read-only transaction start until the record is returned.
Displayed values
All four rates use binary MiB as the byte divisor and are shown in MB/s to one decimal place. There is no score, warm-up, or multi-sample aggregation; each click performs one pass.

Interpret and compare

Memory results describe JavaScript typed-array operations. IndexedDB results describe browser-managed storage transactions, including transaction and browser storage overhead—not the underlying drive's standalone throughput.

Keep browser, device, storage conditions, power mode, and background activity consistent. Close unnecessary workloads and repeat the test with the button before drawing conclusions. Quotas, private browsing restrictions, caching or storage policy, browser engine, device memory, and other processes can affect availability and speed; do not treat unlike browsers or devices as standardized comparisons.