@coder-rust-performance
<skill_overview> 保持 Rust 代码快速,同时保持惯用语 优化热循环 减少分配 选择数据结构 衡量性能影响 Rust Book - 性能 </skill_overview> <zero_cost_abstractions> 自由使用迭代器和闭包;他们编译成高效的代码 在微优化之前更喜欢富有表现力、安全的代码和测量 </zero_cost_abstractions> 更喜欢借用 (&str, &[T]) 而不是分配 (String, Vec) 当大小已知时使用 Vec::with_capacity 进行预分配 避免不必要的克隆;尽可能传递引用 let mut buf = Vec::with_capacity(1024); <hot_paths> 避免在紧密循环中重复格式化或分配 尽可能重用缓冲区和临时值 </hot_paths> 使用实际数据大小进行基准测试 比较更改前后 <anti_patterns> 在分析之前进行优化 在每次迭代时进行克隆 无限增长集合 </anti_patterns>
<skill_overview> 保持 Rust 代码快速,同时保持惯用语 优化热循环 减少分配 选择数据结构 衡量性能影响 Rust Book - 性能 </skill_overview> <zero_cost_abstractions> 自由使用迭代器和闭包;他们编译成高效的代码 在微优化之前更喜欢富有表现力、安全的代码和测量 </zero_cost_abstractions> 更喜欢借用 (&str, &[T]) 而不是分配 (String, Vec) 当大小已知时使用 Vec::with_capacity 进行预分配 避免不必要的克隆;尽可能传递引用 let mut buf = Vec::with_capacity(1024); <hot_paths> 避免在紧密循环中重复格式化或分配 尽可能重用缓冲区和临时值 </hot_paths> 使用实际数据大小进行基准测试 比较更改前后 <anti_patterns> 在分析之前进行优化 在每次迭代时进行克隆 无限增长集合 </anti_patterns>