<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pure/research/experiments/011-http-frameworks/README.md, branch master</title>
<subtitle>Verified execution runtime unifying state, persistence, and replication.
</subtitle>
<id>http://git.yeowoo.org/pure/atom?h=master</id>
<link rel='self' href='http://git.yeowoo.org/pure/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/'/>
<updated>2026-09-27T18:11:45Z</updated>
<entry>
<title>Record the small reads and idle memory work, next to axum and drogon (087)</title>
<updated>2026-09-27T18:11:45Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-27T18:11:45Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=313c4fa1720a0019c87083d3523b6643606c5aa6'/>
<id>urn:sha1:313c4fa1720a0019c87083d3523b6643606c5aa6</id>
<content type='text'>
What the app model, snapshot reads and delivery had cost small reads
(126.7k -&gt; 116.1k GETs a second) and idle memory (2.0 -&gt; 4.5 MiB), how
the sampler found it, and the four steps and the crypto split that took
it back: 139.9k and 2.3 MiB. Measured again today beside axum 0.8.9 and
drogon 1.9.0 on the same Pi: a one-thread pure-serve answers small GETs
at 139k/s (2.2x axum and drogon a CPU second), 1 MiB GETs at 2,362/s
(axum 1,304, drogon 754), durable app writes at 21.3k/s (both about
200), with the least idle memory of the three.

</content>
</entry>
<entry>
<title>Compare the HTTP host with drogon and by CPU time</title>
<updated>2026-09-26T06:42:00Z</updated>
<author>
<name>eunhhu</name>
<email>necpition205@gmail.com</email>
</author>
<published>2026-09-26T06:42:00Z</published>
<link rel='alternate' type='text/html' href='http://git.yeowoo.org/pure/commit/?id=4ebd1cd9108b135c1216bc6ae17832b77dcacaf3'/>
<id>urn:sha1:4ebd1cd9108b135c1216bc6ae17832b77dcacaf3</id>
<content type='text'>
A drogon 1.9 service with the axum baseline's contract joins the benchmark
(memory, fdatasync and crash-safe modes, three IO threads), built from
Debian's packages unpacked under .deps without installing them. drogon
listens once per event loop, so the service picks a free port itself:
with port 0 every loop got a port of its own and the load reached one.

The load generator has one core and saturates near 150k answers a second,
so the harness now also reports answers per second of server CPU time
(all threads). Over three rotated rounds: small GETs 151.6k/s on three
shards (drogon 145.3k, axum 120.9k) and 128k per CPU-second on one thread
(drogon 65k, axum 62k); 1 MiB GETs 2,794/s (axum 1,372, drogon 708);
crash-safe PUTs 5.1-5.8 times axum and 13-30 times drogon; peak RSS
5.0 MiB against 14.4 and 76.5 MiB. --workloads is now a regular expression.

</content>
</entry>
</feed>
