前端之家收集整理的这篇文章主要介绍了
ruby – 为什么proc的运行速度比块更快?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@L_
301_0@另一个问题说
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代码,它需要执行一点时间
原文链接:https://www.f2er.com/ruby/272248.html