Rust 工具链2026.07.118 MIN READ

给 Rust CLI 量一次启动耗时,别再靠感觉

用户反馈命令“有点慢”,但我自己跑感觉不到。于是我在三个位置打点,把一次执行的耗时拆成了四段,问题立刻显形。

本文目录

    启动耗时最容易被忽略的原因是它不在任何请求链路里。加几个 Instant 打点,成本几乎为零,收益是后面所有优化的判断依据。

    rust
    let t0 = Instant::now();
    let args = parse_args();
    let t1 = Instant::now();
    let config = load_config(&args)?;
    let t2 = Instant::now();
    eprintln!("parse {:?} config {:?}", t1 - t0, t2 - t1);
    三段打点,输出到 stderr 便于管道使用

    数据显示 78% 的时间花在配置加载:每次启动都去读一个远程配置,并且没有超时上限。加上本地缓存和 300ms 超时后,冷启动从 640ms 降到 90ms。

    RELATED