加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 为什么proc的运行速度比块更快?

发布时间:2020-12-16 19:55:39 所属栏目:百科 来源:网络整理
导读:This answer另一个问题说 array.map(:to_s) 比快 array.map { |n| n.to_s } 在第一个例子中,转到:第二个例子使用一个块. 为什么Proc比该基准测试块更快?有一些优化,这种技术允许口译员做吗? 解决方法 正如其他人所说,这是特别关于Symbol#to_proc而不是一
This answer另一个问题说
array.map(&:to_s)

比快

array.map { |n| n.to_s }

在第一个例子中,&转到:第二个例子使用一个块.

为什么Proc比该基准测试块更快?有一些优化,这种技术允许口译员做吗?

解决方法

正如其他人所说,这是特别关于Symbol#to_proc而不是一般的procs,它几乎肯定是ruby实现依赖.在Symbol#to_proc本身就是ruby之前,纯粹的ruby实现方式相当于缓慢.

对于一个真正的答案,你想要在执行这样一个基准时配置ruby.

我读Ruby的源代码是当你调用Symbol#to_proc时,你得到的proc有点特殊:proc的正文只是一个C api调用(rb_funcall_passing_block),而在其他情况下它是实际的ruby代码,它需要执行一点时间

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读