Helpful links, thank you!
> The simplest tool is to just grep for various constructs that copy or allocate.
Do you happen to have a curated list somewhere?
Re:Rust is for Professionals
by SAI_Peregrinus on Tuesday April 13, 2021 @10:35PM
(#26802329)
For allocations (more expensive in many cases) the Rust container cheat sheet[1] is helpful. Box, Vec, Rc, Arc, and Mutex are the standard types which allocate.
Not sure of a list for things that copy their data. The Clone trait is the obvious one, and it requires calling clone() to make the copy. EG `val.clone()`. So searching for `.clone()` will get you those. But other things like to_string are expensive, and From/Into are sometimes expensive.
[1] https://docs.google.com/presentation/d/1q-c7UAyrUlM-eZyTo1pd...
The better tool is to profile the code, then optimize hotspots. There's a Rust Performance Book with a list of profilers known to work with Rust programs[1]. Rustc does support Profile Guided Optimization[2] which is often pretty good at speeding up the output even without any code changes.
[1] https://nnethercote.github.io/perf-book/profiling.html [2] https://doc.rust-lang.org/rustc/profile-guided-optimization....