Skip to main content

Benchmarks

All figures measured on a Roblox server with --!native and --!optimize 2 enabled. 60 sample frames, 20 warmup frames.

Throughput = acquire+release pairs per second. Round-trip latency = wall-clock µs per acquire→release cycle. Heartbeat overhead is approximate — treat as a relative signal.


Summary

ProfilePeak ops/sRT µsMiss%
Hot(16) + cold2,485,8000.400.0%
Cold-pool only2,268,6030.440.0%
Cross-pool borrow1,927,6740.0%
Miss-only (factory)707,2141.41100.0%

Profile 1 — Cold-pool only (HotPoolSize = 0)

SeedOpsops/sRT µsMiss%
0×1002,061,8560.480.0%
0×1,0001,317,8700.760.0%
0×5,0002,268,6030.440.0%
0×20,0002,248,3530.440.0%
8×1002,000,0000.500.0%
8×1,0002,099,9580.480.0%
8×5,0002,135,3830.470.0%
8×20,0002,191,1320.460.0%
32×1,0002,148,6890.470.0%
128×1,0002,136,7520.470.0%
512×1,0002,095,9970.480.0%

Profile 2 — Hot + cold tier (HotPoolSize = 16)

SeedOpsops/sRT µsMiss%
0×1002,237,1360.450.0%
0×1,0002,335,3570.430.0%
0×5,0002,448,5800.410.0%
0×20,0002,485,8000.400.0%
32×1,0002,336,9950.430.0%
128×1,0001,767,0970.570.0%
512×5,0002,275,7270.440.0%

Hot+cold consistently outperforms cold-only by ~10% at high operation counts due to better cache locality on the hot sub-pool stack pop.


Profile 3 — Miss-only (factory fallback, pool always empty)

Opsops/sRT µsMiss%
×100707,2141.41100.0%
×1,000641,4781.56100.0%
×5,000679,4681.47100.0%
×20,000682,2001.47100.0%

Factory fallback costs ~3× more than a pool hit (~1.47 µs vs ~0.44 µs). Pre-warm with Seed or tune MinSize and Headroom to eliminate misses on hot paths.


Profile 4 — ReleaseAll bulk cost

ObjectsTotal msµs / obj
×1000.041 ms0.41
×1,0000.372 ms0.37
×5,0001.944 ms0.39
×20,0009.844 ms0.49

Per-object cost is flat (~0.37–0.49 µs/obj) and scales linearly. Safe for wave clears up to a few thousand objects per call.


Profile 5 — Cross-pool borrowing (primary empty, donor seeded)

Opsops/sFactory misses
×1001,661,1300
×1,0001,730,7030
×5,0001,927,6740
×20,0001,844,9330

Borrowing from a peer avoids all factory calls and sustains ~1.8M ops/s — roughly 80% of direct cold-pool throughput, with zero allocations.


Profile 6 — Heartbeat background overhead

Heartbeat overhead: < 0.001 ms  (within noise floor)

The adaptive sizing, EMA demand tracking, and TTL scan running in the background introduce no measurable per-frame cost under normal pool sizes.