Mark cost follows the number of pointers, not bytes. Times are modeled from the post's benchmark (1M: 10.2 ms, 10M: 103.3 ms, 20M: 342.6 ms), with straight lines in between. The pointer count is modeled as 2 per entry plus bucket pointers.
2. One proxy node, request by request
Each dot stands for 250 requests (about 4,000 QPS per node). Time runs in slow motion so you can see the stalls. Simplified: the whole mark time is treated as a stall, like the post's runtime.GC() measurement.
3. Request latency over time (modeled)
RequestStalled by GCShaded band = GC mark time
4. Where the routing rules live (10 Go nodes)
Memory is modeled at 90 bytes per entry (two short strings plus headers and bucket overhead).