diff options
| author | eunhhu <[email protected]> | 2026-09-28 20:10:49 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-28 20:10:49 +0100 |
| commit | ee7f97001b0e193a766a0f889ae16f9d5af40fea (patch) | |
| tree | 1e92063bcdeca959605cc34a436764e7a5b07d12 /Makefile | |
| parent | 91754a57ad7b7a92f9935509367590db951f903b (diff) | |
| download | pure-ee7f97001b0e193a766a0f889ae16f9d5af40fea.tar.gz pure-ee7f97001b0e193a766a0f889ae16f9d5af40fea.zip | |
Wake a link's thread only when it sleeps, once
Every queued record wrote the link's eventfd, a system call each, and woke
the thread to send a packet of a few records. A record queued now wakes
the thread only when it sleeps and nobody woke it yet; one queued while it
sends marks the link, and the thread looks again before it sleeps. With
records queued one at a time as fast as a thread can, 200,000 small ones
went at 400k a second, and now at 730k; queuing one costs 0.43 us, not
1.0.
research/experiments/019-idle-links/transport.c measures the transport
alone: a link and a listener in one process, no app, no store. A backlog
of 200,000 records of 61 bytes drains at 3 to 4 million a second, 0.24 us
a record on each side.
Diffstat (limited to 'Makefile')
0 files changed, 0 insertions, 0 deletions
