对于一个更全面的性能测试,你应该使用不同大小的文本作为 `contents`,不同的单词以及长度各异的单词作为 `query`,以及各种其他变化进行检查。关键在于:迭代器,作为一个高级的抽象,被编译成了与手写的底层代码大体一致性能的代码。迭代器是 Rust 的**零成本抽象**(*zero-cost abstractions*)之一,它意味着抽象并不会引入额外的运行时开销,它与本贾尼·斯特劳斯特卢普(C++ 的设计和实现者)在《Foundations of C++》(2012)中所定义的**零开销**(*zero-overhead*)如出一辙:
对于一个更全面的性能测试,你应该使用不同大小的文本作为 `contents`,不同的单词以及长度各异的单词作为 `query`,以及各种其他变化进行检查。关键在于:迭代器,作为一个高级的抽象,被编译成了与手写的底层代码大体一致性能的代码。迭代器是 Rust 的**零成本抽象**(*zero-cost abstractions*)之一,它意味着抽象并不会引入额外的运行时开销,它与本贾尼·斯特劳斯特卢普(C++ 的设计和实现者)在《Foundations of C++》(2012)中所定义的**零开销**(*zero-overhead*)如出一辙:
> In general, C++ implementations obey the zero-overhead principle: What you don't use, you don't pay for. And further: What you do use, you couldn't hand code any better.