Python
| Runner | python/ |
| Script | ./python/scripts/run-benchmarks.sh smoke |
| Logs | logs/python/ |
| Runtime | CPython 3.12+ via uv |
| Log name | Category | Communication | Package | Notes |
|---|---|---|---|---|
deque-lock |
locked | T (thread) | stdlib | collections.deque + threading.Lock |
queue.Queue |
concurrent | T (thread) | stdlib | Threading MPMC blocking queue |
queue.SimpleQueue |
concurrent | T (thread) | stdlib | Unbounded C-accelerated MPMC; backpressure cells skipped |
asyncio.Queue |
async | A (async) | stdlib | Event-loop queue |
janus |
async | A (async) | janus | Async face only; not the hybrid thread↔async path |
spsc-ring |
spsc | T (thread) | harness | Single-producer ring; 1P1C only |
steal-deque |
work-stealing | T (thread) | harness | Owner-push / steal-from-top |
multiprocessing.Queue |
concurrent | P (process) | stdlib | Opt-in two-process IPC |
multiprocessing.SimpleQueue |
concurrent | P (process) | stdlib | Opt-in unbounded IPC pipe |
shared-ring |
spsc | S (shared) | harness | Opt-in two-process mapped ring |
sqlite-queue |
durable | D (durable) | stdlib | Opt-in SQLite queue |
The published patterns are 1P1C and 4P4C. CSV still logs bytes
for 1P1C. Compare T libraries separately from A.
See Benchmark design.
Celery, RQ, Redis, Kafka, and the other broker/task libraries from the candidate lists are out of this lab. The full include/exclude table is Python library selection.