perl - 为什么 substr-lvalue 比四参数 substr 快?
问题描述
从这个问题,我们对这两个变体进行基准测试,
substr( $foo, 0, 0 ) = "Hello ";
substr( $foo, 0, 0, "Hello " );
在其中我们发现substr
-lvalue更快。池上说,
4-arg substr 如何比 lvalue substr 慢(必须创建一个神奇的标量,并且需要额外的操作)???——池上
说实话,我还认为它会慢很多,只是提到它,因为它是由其他人提出的。纯粹出于好奇,
为什么在上述用例中substr
-lvalue 比四个参数快?substr
解决方案
从 5.16.0 开始,lvalue+assign 变体已优化为 4-arg 变体(尽管在 5.20.0 之前,清空的 NOOP 赋值操作仍在执行路径中,这稍微减慢了它的速度)。
推荐阅读
- android - DialogFragment 阻止上一个片段上的动画
- node.js - Nodejs moment not able to convert string to date
- mongodb - Mongodb聚合查找以在每个数组中添加带有条件的字段
- javascript - TypeError:无法在 Array.forEach 处读取未定义的属性“名称”
- list - 如何从 firestore 检查有多少项目具有真值或假值并在列表中仅显示真值?- 颤动
- ios - JSON 写入中的类型无效 (RTCIceCandidate)
- reactjs - react并发模式的使用方法
- typescript - 打字稿中可选函数参数下的解构参数抛出错误
- c# - 为绕过令牌触发 hCaptcha 回调函数
- hbase - MAPR 性能属性在集群中对大量数据没有贡献