当前位置: 首页 > wzjs >正文

wordpress怎么设置网站描述房地产最新消息2022

wordpress怎么设置网站描述,房地产最新消息2022,买卖网站,红桥网站建设Rust 学习笔记:循环和迭代器的性能比较 Rust 学习笔记:循环和迭代器的性能比较示例 1示例 2总结 Rust 学习笔记:循环和迭代器的性能比较 示例 1 我们运行一个基准测试,将《福尔摩斯探案集》的全部内容加载到一个字符串中&#x…

Rust 学习笔记:循环和迭代器的性能比较

  • Rust 学习笔记:循环和迭代器的性能比较
    • 示例 1
    • 示例 2
    • 总结

Rust 学习笔记:循环和迭代器的性能比较

示例 1

我们运行一个基准测试,将《福尔摩斯探案集》的全部内容加载到一个字符串中,并在内容中查找单词 the。下面是使用 for 循环的搜索版本和使用迭代器的版本的基准测试结果:

test bench_search_for  ... bench:  19,620,300 ns/iter (+/- 915,700)
test bench_search_iter ... bench:  19,234,900 ns/iter (+/- 657,200)

使用迭代器的版本略优于使用循环的版本。

迭代器虽然是高级抽象,但编译后的代码与自己编写的底层代码大致相同。

迭代器是 Rust 的零成本抽象之一,意思是使用抽象不会带来额外的运行时开销。

示例 2

以下代码取自音频解码器。解码算法使用线性预测数学运算来估计基于前一个样本的线性函数的未来值。这段代码使用一个迭代器链对作用域中的三个变量进行一些计算:一个数据的缓冲片、一个包含12个系数的数组,以及要在qlp_shift中移动数据的量。我们在这个例子中声明了变量,但没有给它们任何值;尽管这段代码在其上下文之外没有太多意义,但它仍然是Rust如何将高级思想转换为低级代码的一个简明的真实示例。

let buffer: &mut [i32];
let coefficients: [i64; 12];
let qlp_shift: i16;for i in 12..buffer.len() {let prediction = coefficients.iter().zip(&buffer[i - 12..i]).map(|(&c, &s)| c * s as i64).sum::<i64>() >> qlp_shift;let delta = buffer[i];buffer[i] = prediction as i32 + delta;
}

为了计算预测值,这段代码遍历系数中的 12 个值,并使用 zip 方法将系数值与缓冲区中的前 12 个值配对。然后,对于每一对,我们将这些值相乘,对所有结果求和,并将总和 qlp_shift 位中的位向右移动。

音频解码器等应用程序中的计算通常最优先考虑性能。这里,我们使用两个适配器创建一个迭代器,然后消费该值。这个 Rust 代码编译成什么汇编代码?

没有任何循环对应于对系数值的迭代:Rust 知道有 12 次迭代,所以它“展开”循环。展开是一种优化,它消除了循环控制代码的开销,而是为循环的每次迭代生成重复的代码。

所有的系数都存储在寄存器中,这意味着访问值非常快。在运行时对数组访问没有边界检查。Rust 能够应用的所有这些优化使生成的代码非常高效。

现在知道了这一点,就可以毫无畏惧地使用迭代器和闭包了!它们使代码看起来更高级,但不会因此造成运行时性能损失。

总结

闭包和迭代器是受函数式编程语言思想启发的 Rust 特性。它们有助于 Rust 以低级性能清晰地表达高级思想的能力。

闭包和迭代器的实现不影响运行时性能。这是 Rust 努力提供零成本抽象目标的一部分。

http://www.dtcms.com/wzjs/798606.html

相关文章:

  • 做网站公证需要费用是多少o2o网站模版
  • 顺义建站好的公司wordpress网页手机版
  • 织梦后台怎么做导航栏的网站首页大型网站建设企业
  • 网站建设金网科技比wordpress好用的
  • 网站建设就业怎么样平顶山哪里有做网站的公司
  • 连云港商城网站开发设计seo运营招聘
  • html怎么弄成网站电子商务网站开发流程
  • 茂名市网站建设百度网站置顶怎么做
  • 关于继续做好网站建设得通知宿迁房产网二手房出售
  • 做网站的费用怎么录分录提供提供手机网站建设
  • 小语种网站怎么做小学生抄写新闻20字
  • 网站毕业设计怎么做网络营销计划的七个步骤
  • 廊坊哪里有做网站建设的工作正能量励志句子
  • 苏州的网站建设公司国际电商怎么做
  • 部队网站模板哪个网站可以看一级a做爰片t
  • 怎么建设一个人自己网站网站建设肆金手指排名4
  • 网站建设明细报价单古城网站建设
  • 网站 框架网页建设4399游戏网页版入口
  • 保定市做网站的公司关键词搜索广告
  • 网站建设最好的公司哪家好开发个app多少钱
  • 镇海网站建设莱州网络推广公司
  • 网站上的流动图片怎么做的长春建站企业
  • 福州网站建设的公司wordpress 数据库名贵
  • 2008iis网站建设电商设计平台
  • app网站建设开发国外做网站的公司
  • 网站关键字被改了商城源码开源
  • 一个网站的设计周期干洗店投资多少钱可以营业了
  • 国外注册的域名国内做的网站不会写代码怎么做网站
  • 如何做网站的网页手机做的兼职网站设计
  • 十大免费网站推广平台浙江建设厅