From 5d74807ae38d87e0f8d57d42e56ba6709f58fca0 Mon Sep 17 00:00:00 2001 From: KaiserY Date: Sun, 25 May 2025 13:41:31 +0800 Subject: [PATCH] wip: 2024 edition --- src/ch13-04-performance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch13-04-performance.md b/src/ch13-04-performance.md index c93ee7b..8b968a7 100644 --- a/src/ch13-04-performance.md +++ b/src/ch13-04-performance.md @@ -14,7 +14,7 @@ test bench_search_iter ... bench: 19,234,900 ns/iter (+/- 657,200) 两种实现具有相似的性能表现!这里我们不会解释性能测试的代码,我们的目的并不是为了证明它们是完全等同的,而是得出一个怎样比较这两种实现方式性能的基本思路。 -对于一个更全面的性能测试,你应该使用不同大小的文本作为 `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. >