【问题标题】:Fact that perl ternary operator faster than if else事实上 perl 三元运算符比 if else 更快
【发布时间】:2022-01-25 18:09:19
【问题描述】:

perl三元运算符比if else快多少,if是多少倍,如何证明?

【问题讨论】:

  • 通常你会对这样的事情进行基准测试,Benchmark 模块很适合它。但是,考虑到它是多么微妙以及在设置任何类型的时间/基准测试时有多少开销,我怀疑人们是否可以检测到这种差异。
  • 如果这种差异是你编程速度慢的原因,那么你的身材比世界上几乎所有其他程序员都要好。 :)

标签: perl optimization


【解决方案1】:

if/else 和三元运算符在内部编译成相同的基本操作码 (OP_COND_EXPR)。唯一的区别是因为 if/else 块中的代码形成了一个新的作用域,所以在每个块的开始/结束处都有额外的启动和拆卸。

但性能差异不太可能显着,并且 99.9% 的时间您应该以最大限度地提高可读性的方式编写代码 - 例如,不在 void 上下文中使用三元运算符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-12
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多