mcpField
R
rust-performance

rust-performance

github.com/full-stack-skills开发12135 次安装5 周前更新
代码仓库

关于 rust-performance

rust-performance 是用于测量和优化 Rust 软件的技能,面向排查性能、内存、二进制大小或构建耗时的开发者。它强调建立可复现基线、先分析再修改,并以正确性和实测改进验证结果。

主要功能

  1. 01定义工作负载与性能指标
  2. 02建立可复现的基准
  3. 03分析 CPU、内存与构建成本
  4. 04优化经测量确认的瓶颈
  5. 05验证改动并报告权衡

适用场景

  1. 01排查延迟或吞吐量回归
  2. 02查找分配或堆内存保留成本
  3. 03缩减二进制大小或编译时间

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/full-stack-skills/rust-skills --skill rust-performance

安装后在 Claude Code 中输入/rust-performance确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
examples/
examples.md
examples/golden-performance/
Cargo.lock
Cargo.toml
examples/golden-performance/benches/
sum.rs
examples/golden-performance/src/
lib.rs
references/
benchmarking-and-regressions.md
cpu-and-latency-profiling.md
memory-size-and-compile-time.md
optimization-workflow.md

详细介绍

Rust 性能

基于证据进行优化。定义用户可见的指标,复现工作负载,建立稳定的基线,分析主要开销,针对一个原因进行修改,并验证正确性和性能提升。

范围与路由

将此技能用于微基准测试、端到端负载测试、CPU 性能分析、分配与堆分析、二进制大小、编译时间、缓存行为和回归预算。

并发语义请转至 rust-concurrency,遥测流水线请转至 rust-observability,通用测试架构请转至 rust-testing,发布配置和功能请转至 rust-cargo-build,语义审查请转至 rust-code-review。

工作流

1. 定义性能契约

记录工作负载、数据集、输入、并发度、平台、CPU 和内存限制、工具链、目标平台、功能、分配器、构建配置、预热、缓存状态和成功指标。区分吞吐量与 p50/p95/p99 延迟,以及稳定运行阶段与启动或关闭阶段。

除非调试构建或合成输入能代表实际问题,否则不要针对它们进行优化。

2. 建立可复现的基线
  • 基准测试前验证正确性。
  • 有意设置接近发布构建的优化、代码生成单元、LTO、panic 策略和目标 CPU 设置。
  • 隔离后台负载、电源管理、热节流和嘈杂的共享运行器。
  • 记录原始样本和不确定性,而不只是单个平均值。
  • 评估小幅回归时,确保使用相同的提交、工具链、依赖关系图和硬件。

请阅读基准测试与回归门槛。

3. 选择测量层级
问题工具或证据
纯操作是否更快?Criterion 或 Divan 微基准测试
指令级开销是否发生变化?在受支持的系统上使用 iai-callgrind
CPU 时间花在哪里?samply、cargo-flamegraph、Instruments、perf、pprof
哪些分配仍被保留?DHAT、堆分析器、分配器指标
二进制为何这么大?cargo-bloat 和功能检查
是什么影响编译时间?Cargo 构建耗时和 cargo-llvm-lines
服务是否达到 SLO?有代表性的负载测试加可观测性

微基准测试无法证明端到端延迟、过载行为或内存边界。

4. 编辑前先进行性能分析

在产生问题的工作负载下采集性能分析数据。保留符号,并使用与对比测试相同的优化产物。区分 CPU 执行、等待、锁竞争、I/O、内存分配、缺页和调度器开销。请阅读CPU 与延迟性能分析。

5. 优化主要开销

常见改动包括优化算法复杂度、减少遍历次数、改进批处理、避免重复解析或分配、使用借用而非克隆、改进数据布局、减少同步、限制队列长度、采用流式处理、减少功能,以及将 CPU 密集型工作移出异步工作线程。

只有在更简单的改动不足以解决问题,且不变量和回退行为都经过测试后,才使用 unsafe、自定义分配器、SIMD、无锁结构或缓存。

6. 衡量内存、大小和构建开销

跟踪峰值 RSS、保留堆、分配速率、碎片、缓存增长、缓冲区边界、二进制段、单态化、调试信息、启用的功能、宏展开,以及增量编译与干净编译的时间。请阅读内存、二进制大小与编译时间。

7. 验证结果

重新运行正确性测试和完全相同的基线流程。报告绝对和相对结果、方差、硬件与软件环境、权衡,以及次要指标上的回归。只有当环境能够可靠检测预期阈值时,才添加持久化基准测试或预算。

完成标准

  • 定义有代表性的工作负载和用户可见指标。
  • 在优化前记录可复现的基线证据。
  • 通过性能分析找出主要开销,而非凭猜测。
  • 通过有针对性的测试确保正确性和安全性。
  • 在相同的测试方案下重新测量,并报告不确定性和权衡。
  • 添加稳定的回归检查,或说明环境为何噪声过大。

资源

上游来源

数据隐私

此技能不会收集、存储或传输用户数据。性能分析数据、堆转储、命令行、符号和基准测试数据集可能包含敏感信息;分享前请确认存储和上传政策。

评论

支持 Markdown