Expand description
ページ読み込み経路の軽量プロファイラ。
§なぜ作ったか
【2026-08-05】1 箇所ずつ計装しては実機で確かめ、外しては確かめ……を 繰り返していた。実機 1 回が数分かかるので、これでは終わらない。 関連する関数に一斉に計測点を置き、1 回の実行で全部見るための道具。
§使い方
ⓘ
let t = perf::start();
...測りたい処理...
perf::add(perf::Slot::TlsHandshake, t);集計は perf::dump() が 1 行で出す。
§設計
- 固定スロット(
enum Slot)と固定長配列。確保しない - 加算は
AtomicU321 回。ただしget_ticks()を 2 回呼ぶ (startとadd)。熱経路では効く (実測: 1 パケットごとに置いたら受信待ちが 2 倍になった)。 1 パケット・1 フレーム・1 要素ごとの計測は調査中だけにして、 目的を果たしたら外し、外した状態で測り直すこと - tick 単位(10ms)。それより細かい対象には使わない
計測点を増やすときは Slot に足して NAMES にも足す。
両方を 1 箇所で持つので、名前と実体がずれない。
Structs§
- Guard
- スコープを抜けるときに自動で加算するガード。
Enums§
- Slot
- 計測点。増やすときは
NAMESにも同じ順で足すこと。
Constants§
- NAMES 🔒
- 表示名。
Slotと同じ順。 - SLOT_
COUNT - スロット数。
Slotの要素数と一致させる。 - ZERO 🔒