3 Lint
Clippy 与性能相关 lint
1分钟内可阅读完
译文 · 基于 The Rust Performance Book
Lint
Clippy 是一组用于捕获 Rust 代码中常见错误的 lint。它是运行 Rust 代码的出色工具。它也有助于性能,因为其中许多 lint 与可能导致次优性能的代码模式有关。
鉴于自动检测问题优于手动检测,本书其余部分将不再提及 Clippy 默认能检测到的性能问题。
基础
安装后,运行很简单:
| |
完整的性能 lint 列表可通过访问 lint 列表并取消选择除「Perf」以外的所有 lint 组来查看。
除了使代码更快之外,性能 lint 建议通常还会使代码更简单、更符合惯用法,因此即使对于不常执行的代码也值得遵循。
反之,一些非性能 lint 建议可以改善性能。例如,ptr_arg 风格 lint 建议将各种容器参数改为切片,例如将 &mut Vec<T> 参数改为 &mut [T]。这里的主要动机是切片提供更灵活的 API,但由于减少了间接访问并为编译器提供了更好的优化机会,也可能产生更快的代码。
示例。
禁止特定类型
在后续章节中,我们将看到有时值得避免使用某些标准库类型,转而使用更快的替代方案。如果你决定使用这些替代方案,很容易在某些地方误用标准库类型。
你可以使用 Clippy 的 disallowed_types lint 来避免此问题。例如,要禁止使用标准哈希表(原因见哈希一节),在代码中添加包含以下内容的 clippy.toml 文件。
| |