Rust 在 Linux 上的性能调优实战指南
一 建立可度量的基准
cargo bench -- --save-baseline pr 与 cargo bench -- --save-baseline main,再用 cargo criterion --compare pr vs main 查看差异。二 编译期优化
cargo build --release,默认启用优化(如函数内联、循环优化等)。[profile.release]
opt-level = 3
lto = true
codegen-units = 1
其中 opt-level=3 为常用最高级别;lto=true 允许跨编译单元优化;codegen-units=1 提升跨模块优化机会(会延长编译时间)。RUSTFLAGS="-C target-cpu=native",让编译器利用本机特性(如特定指令集扩展)。注意:生成的二进制在其他机器上可能性能下降或无法运行。三 运行时与算法内存优化
四 性能分析与定位瓶颈
sudo perf record -g target/release/your_program
sudo perf report
cargo install flamegraph
cargo flamegraph --bin your_program
火焰图中“更宽更亮”的函数即热点,优先优化占比高的路径。五 系统层面与上线前检查
ulimit -n 65535);处理大量内存映射时增大 vm.max_map_count(如 sysctl -w vm.max_map_count=262144);网络服务可按需调整 net.core.somaxconn、net.ipv4.tcp_max_syn_backlog 等 TCP 参数。