Rust in Everything
基于 tokio-metrics 0.5.2

设计取舍

前面各部分按类型读,每一页讲清一个机制。这一部分换个角度:把散在各页里的取舍收拢起来,按「选了什么、换来了什么、付出了什么、代价由谁来补」排好。机制不重讲,每条都链回讲过它的那一页。

  1. 取舍汇总:七个决定。包 waker 而不改调度器(实测单线程每次 poll 多 75–125ns,12 个线程共用一个 monitor 时约 3.3µs);写方只累加、读方做差,区间最大空闲是例外;运行时只读 tokio 的计数器,口径跟着 tokio 走;不稳定字段用 cfg 删掉;TaskMonitorCore 与 FutureMonitor 两个变体;metrics-rs 的导出口径写死在宏里;与 tokio-console 的分工。
flowchart TB
  w["包 waker"] --> a["只累加"]
  a --> r["运行时只读"]
  r --> c["cfg 删字段"]
  c --> v["两个变体"]
  v --> e["导出口径"]
  e --> k["与 console 分工"]

💬 关联讨论

发起讨论
加载中...