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

手机网站建设教程网络推广的方法有哪些

手机网站建设教程,网络推广的方法有哪些,打造专业团队,网站设计及内容策划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/55238.html

相关文章:

  • 迁西网站定制保定网站seo
  • 云南建设厅查证网站职业培训机构需要什么资质
  • 学工系统网站建设的意义创意营销
  • 天津市网站制作公司网络营销和电子商务区别
  • php企业网站开发实验总结网站客服系统
  • 上海网站建设浦东今日头条搜索优化
  • 哈尔滨网站定制公司北京正规seo搜索引擎优化价格
  • 株洲网站优化域名解析ip地址查询
  • 广告推广代理海外seo推广公司
  • seo职位描述seo优化是做什么的
  • 创业做b2b行业网站_正确划分行业_别被建站公司忽悠常宁seo外包
  • 苏州网站开发公司排名软件外包公司好不好
  • ip地址做网站百度手机网页版入口
  • 厦门市思明区建设局网站营销网点机构号
  • 昆山教育平台网站建设aso优化吧
  • 网站建设专业可行性分析首码项目推广平台
  • 做网站的算什么行业哈尔滨百度推广公司
  • 一个好的网站内页大概做多少佛山网络营销推广
  • 规划设计公司资质要求做seo需要用到什么软件
  • 深圳住房和城乡建设厅网站怎么创建一个网页
  • 柳州网站建设33线上营销方式主要有哪些
  • 还有哪些网站可以做H5潍坊网站开发公司
  • 电脑课做网站的作业网络营销案例ppt
  • 什么专业学做网站软件开发工资一般多少
  • 建设网站账号密码不区分大小写站长网
  • 莱芜益寿堂网站百度怎么找人工客服
  • 找网站开发人员足球排行榜前十名
  • 科技类网站简介怎么做91永久海外地域网名
  • 网站建设品牌推荐学校seo推广培训班
  • 网站备案用的幕布可以淘宝做吗谷歌seo排名公司