# ipc-ring48 Benchmarking
`ipc-ring48` benchmarks measure a fixed 48-byte SPSC shared-memory queue.
## System Context
Captured before the current benchmark run:
```text
date: 2026-06-02T17:06:50+00:00
host: sg1
os: Ubuntu 24.04.4 LTS (Noble Numbat) x86_64
system: Linux sg1 6.8.0-117-generic #117-Ubuntu SMP PREEMPT_DYNAMIC Tue May 5 19:26:24 UTC 2026 x86_64 GNU/Linux
host class: KVM/QEMU Standard PC (i440FX + PIIX, 1996)
rustc: rustc 1.95.0 (59807616e 2026-04-14)
cargo: cargo 1.95.0 (f2d3ce0bd 2026-03-21)
architecture: x86_64
cpu: AMD EPYC 9354P 32-Core Processor under KVM/QEMU
vcpus: 2
threads per core: 1
cores per socket: 2
sockets: 1
memory: 7.75 GiB total, 1.17 GiB used at capture
swap: disabled
disk root: ext4, 95.82 GiB total, 14.50 GiB used at capture
locale: C.UTF-8
```
These `ipc-ring48` readings were captured on `sg1`, a separate host from the `ipc48` crate benchmark host recorded in that crate's benchmarking document.
## Library Benchmarks
Run:
```bash
cargo bench --bench ipc_ring48
```
Current readings:
```text
library_push_1024_messages [45.564 µs 47.302 µs 50.026 µs]
library_pop_1024_messages [43.197 µs 43.861 µs 44.595 µs]
library_push_then_pop [37.014 µs 37.611 µs 38.233 µs]
open_existing_producer_mapping [50.450 µs 51.144 µs 51.913 µs]
open_existing_consumer_mapping [50.366 µs 50.964 µs 51.604 µs]
```
Derived per-message readings for 1024-message batches:
```text
library_push per message ~46.2 ns
library_pop per message ~42.8 ns
```
## CLI Benchmarks
Build release first:
```bash
cargo build --release
```
Run:
```bash
./scripts/bench_cli.sh target/x86_64-unknown-linux-musl/release/ipc-ring48 1000
```
Current readings:
```text
push-u64 + pop-u64 mean 1.080447 ms
push-file + pop-bin mean 1.371640 ms
```
## Static Binary
Current release binary:
```text
target/x86_64-unknown-linux-musl/release/ipc-ring48
size: 397K
file: ELF 64-bit LSB pie executable, x86-64, static-pie linked, stripped
```
## Notes
Benchmark readings are machine-local observations. The stable contract is the operation measured, the command used, the system context, and the final release commit that produced the binary.