ShopperCove
Menu
All writingBlogTopicsCategoriesAboutRSS
Blog
Categories
Observability & SRE62All categories
Topics
sre111localhost lab102performance70python58javascript47bundle size36benchmarking35node.js35web development21typescript19benchmark16content creation15All topics
About

Category

Observability & SRE

Metrics, traces, percentiles and what the graphs actually say.

62 posts

Loading posts…

ShopperCove

Hands-on notes on developer tools, written after the tool has actually been run.

All writingBlogCategoriesTopicsAboutPrivacyRSS

© 2026 ShopperCove

Context-Switch Microbench: Pipe Ping-Pong Process vs Thread

Hands-on ctx-switch lab: process pipe RTT p50 3.2 us (~0.50M sw/s); thread pipe 2.85 us; Event 9.3 us; 6 hogs blow p95 to 19 us. Real numbers, no Docker.

1 Oct 20265 min read
→

Asyncio vs Threads: I/O Concurrency Lab with Real Numbers

Hands-on asyncio vs ThreadPool lab: sleep 58.7× vs 44×; delayed TCP 13.8× vs serial; fast-echo trap loses; CPU flat. Real localhost numbers, no Docker.

1 Oct 20266 min read
→

flock Contention Lab: Exclusive, Shared, and LOCK_NB Fail Rates

Hands-on flock lab: uncontended LOCK_EX p50 0.33 us; waiter ~50 ms hold; w8 p50 ~36 ms; LOCK_NB 99% fail; LOCK_SH ~6.7x wall. Real numbers, no Docker.

1 Oct 20265 min read
→

OpenSSL TLS Handshake Lab: Full vs Resume on Localhost

Hands-on TLS handshake lab: Python full HS p50 TLS1.3 1.51 ms vs TLS1.2 1.20 ms (~72× TCP); openssl resume ~1.5× / 4.1×. Localhost RSA numbers, no Docker.

1 Oct 20265 min read
→

Line Buffering vs Full Buffering: Why Is My Output Late?

Hands-on stdout buffering lab: full buffering maximizes throughput, while line and unbuffered modes restore live visibility on pipes.

1 Oct 20266 min read
→

ProcessPool vs ThreadPool: GIL CPU Lab with Real Numbers

Hands-on ProcessPool vs ThreadPool lab: pure-Python threads lose to processes, hashlib threads help, and sleep I/O favors threads.

30 Sept 20265 min read
→

epoll vs select Toy: Ready-Wait Latency and the FD_SETSIZE Cliff

Hands-on epoll vs select toy: ready-wait flat ~3.5 µs (8→900 FDs); select scales 4.6→16.9 µs then hits fd≥1024 cliff. Python numbers, no Docker.

30 Sept 20265 min read
→

sendfile vs Userspace Copy: Localhost TCP File Serve Lab

Hands-on sendfile vs read+sendall lab: 256 MiB p50 4.41 vs 2.34 GB/s (~1.9×); copy collapses at 4 KiB. Warm localhost TCP measured, no Docker.

30 Sept 20265 min read
→

Pipe vs Tmpfile IPC: Localhost Throughput and RTT Lab

Hands-on pipe vs tmpfile IPC lab: 5.32 vs 1.51 GB/s bulk (fsync 0.57); 64 B RTT p50 3.3 us vs 70 us vs 289 us. Localhost measured, no Docker.

30 Sept 20266 min read
→

What Is Nagle's Algorithm? TCP_NODELAY vs Nagle Tested

Hands-on TCP_NODELAY vs Nagle: 1-byte reuse 124k vs 73k RPS; 32×16B writes favor Nagle (~1.7× fewer OutSegs). Delayed-ACK mean trap on localhost.

30 Sept 20266 min read
→

ulimit Soft vs Hard File Descriptors: EMFILE Lab with Real Numbers

Hands-on RLIMIT_NOFILE lab: soft=64 → EMFILE after 58 held accepts; soft=512 takes 200/200. Soft raises without root; hard does not. Real numbers.

30 Sept 20265 min read
→

SO_REUSEPORT vs Single Listen: Independent Queues and ListenOverflows

Hands-on SO_REUSEPORT lab: ss shows 4 listen queues; backlog=8 flood 72% vs 62% OK; ~41% fewer ListenOverflows. Real localhost numbers, no Docker.

30 Sept 20266 min read
→
Previous
  1. 1
  2. …
  3. 4
  4. 5
  5. 6
Next