事实上 perl 三元运算符比 if else 更快

0 optimization perl

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

Dav*_*ell 6

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

但性能差异不太可能很大,99.9% 的情况下,您应该以最大化可读性的方式编写代码 - 例如,不在 void 上下文中使用三元运算符。