Rust 程序设计语言 简体中文版 1.85.0
code any better. 总的来说,C++ 的实现遵循了零开销原则:不使用的功能无需为其付出代价;而已经 使用的功能,也不可能通过手写代码做得更好。 作为另一个例子,以下代码取自一个音频解码器。解码算法使用线性预测数学运算(linear prediction mathematical operation)来根据之前样本的线性函数预测将来的值。这些代码 使用迭代器链对作用域中的三个变量进行某种数学计算:一个叫 coefficients 中的 12 个值,使用 zip 方法将系 数与 buffer 的前 12 个值组合在一起。接着将每一对值相乘,再将所有结果相加,然后将总 和右移 qlp_shift 位。 像音频解码器这样的程序通常最看重计算的性能。这里,我们创建了一个迭代器,使用了两个 适配器,接着消费了其值。那么这段 Rust 代码将会被编译为什么样的汇编代码呢?好吧,在 编写本书的这个时候,它被编译成与手写的相同的汇编代码。遍历0 码力 | 562 页 | 3.23 MB | 9 天前3
共 1 条
- 1