SuperAPI AI 工具集

rust-performance

编程与开发

查看项目

更新于 10-15 21:48

技能介绍

用途:该技能用于以证据驱动的 Rust 性能优化。流程是先定义用户可见指标,复现工作负载,建立稳定基线,剖析主要开销,一次改动一个原因,并同时证明正确性与性能提升。适用微基准、端到端负载测试、CPU 剖析、分配与堆分析、二进制体积、编译时间、缓存行为及回归预算。

主要能力与工具:纯操作对比可用 Criterion 或 Divan 微基准;指令级成本可用 iai-callgrind;CPU 时间定位可用 samply、cargo-flamegraph、perf、pprof 或 Instruments;分配与堆可用 DHAT、堆剖析器或分配器指标;体积问题用 cargo-bloat 与特性检查;编译时间用 Cargo build timings 与 cargo-llvm-lines;服务 SLO 用代表性负载测试加可观测性。

使用方式:先验证正确性再基准测试;使用接近发布版的优化、codegen units、LTO、panic 策略和目标 CPU 设置;隔离后台负载、电源管理、热降频和嘈杂共享运行器;记录原始样本与不确定性,而非单一平均值;在严格推进小回归时保证同一提交、工具链、依赖图和硬件。

优化次序:常见改动包括算法复杂度、减少遍历、更佳批处理、避免重复解析或分配、用借用代替克隆、数据布局改进、减少同步、有界队列、流式处理和把 CPU 工作移出异步 worker。在更简单改动不足前,不要使用 unsafe、自定义分配器、SIMD、无锁结构或缓存。

限制与边界:并发语义应转到 rust-concurrency,可观测性管线转到 rust-observability,测试架构转到 rust-testing,发布配置与特性转到 rust-cargo-build,语义审查转到 rust-code-review。不要在调试构建或合成输入上优化,除非它们代表真实问题;微基准不能证明端到端延迟、过载行为或内存边界。仅在环境能可靠检测阈值时添加持久基准或预算,否则说明环境过于嘈杂。该技能不收集、存储或传输用户数据;剖析、堆转储、命令行、符号和基准数据集可能含敏感信息,分享前需确认存储与上传策略。