# Performance

> How fast objectstore is: measured numbers, what profiling found, and its benchmark history.

[magmalake](https://magmalake.dev/) [objectstore](https://magmalake.dev/s/objectstore)

###  Primitives

| Operation | magmalake | Reference |
| --- | --- | --- |
| SHA-256 pure Mojo with ARMv8 crypto intrinsics; a single timed pass, median of three | **2.70 GB/s — 590 MB/s scalar fallback** | OpenSSL 3.17 GB/s on the same 64 MiB, in the same process |

scroll the table sideways →

###  Object storage

| Operation | magmalake | Reference |
| --- | --- | --- |
| S3 multipart upload, 16 MB 8 MB parts, each signed with SigV4 | **396 MB/s** | the same object comes back down at 2.3 GB/s — the upload is what pays for hashing and part framing |
| HTTP range read, pooled connection 200 × 64 KiB, one request each | 0.147 ms local / 0.495 ms signed S3 | — |
| The same 200 ranges, coalesced adjacent spans asked for at once — the shape a Parquet scan actually has | 0.022 ms local / 0.029 ms signed S3, per range | 6.7× and 17× cheaper per range than asking one at a time |

scroll the table sideways →

Apple M4 — ten cores, four of them performance — macOS, stable Mojo 1.0.0, with nothing else building on the machine. Measured on 5 September 2026; the Iceberg rows on 15 September, the boundary rows on 19 September. [How these were measured](https://magmalake.dev/performance#method).

### Found by profiling

**SHA-256 running 45× off what the hardware can do.** The scalar implementation was correct and slow; the CPU had crypto instructions sitting idle.

[A magmalake project](https://magmalake.dev/)

Apache 2.0 · © 2026 Marius Seritan
