该技能是一份 Rust 应用性能优化指南,包含 42 条规则,按影响程度从关键到增量分为 8 类。适用场景包括:优化 Rust 性能或减少内存分配、按算法复杂度选择数据结构、避免迭代器产生不必要的中间分配、编写基于 Tokio 等运行时的异步代码、分析热点路径并消除瓶颈、审查性能反模式。
规则类别及影响优先级:1 内存分配(关键,前缀 mem-);2 所有权与借用(关键,own-);3 数据结构选择(高,ds-);4 迭代器与集合模式(高,iter-);5 异步与并发(中高,async-);6 算法复杂度(中,algo-);7 编译期优化(中,comp-);8 微优化(低,micro-)。
代表性规则示例:避免不必要的 clone、预分配 Vec 容量、条件所有权用 Cow、共享不可变数据用 Arc、简单拼接避免 format!、小集合用 SmallVec;接受 &str 而非 &String、接受 &[T] 而非 &Vec、用 Into 实现灵活所有权、尽量返回借用数据、用 AsRef 做泛型借用;成员判断用 HashSet、键值查找用 HashMap、有序遍历用 BTreeMap、队列用 VecDeque、条件插入用 Entry API;链式迭代器避免中间 collect、借用时用 iter() 而非 into_iter()、合并操作用 filter_map、嵌套迭代用 flat_map、批量追加用 extend()、复杂累加用 fold();异步中避免阻塞、用 join! 并发、读多用 RwLock、缩小锁范围、用 buffered() 限制并发、避免跨 await 持有锁;查找避免嵌套循环、有序数据用二分查找、顺序无关用 sort_unstable、部分排序用 select_nth_unstable、批处理用 chunks();编译期计算用 const、优先静态分发、减少单态化膨胀、数组大小用 const 泛型、避免重复解析静态数据;微优化包括对小热点函数用 inline、避免热点循环边界检查、安全时用 wrapping 运算、ASCII 用字节字面量。
使用方式:按上述类别与优先级检查代码,识别并替换性能反模式。限制与细节:本资料未提供具体安装命令、收费信息或运行平台,需结合参考资料与相关技能(如 rust-refactor)使用。