嗨,我正在使用codeigniter构建一个大型应用程序。因为应用程序非常大,所以性能是必须的。我想优化我的if else语句。
使用from的性能是否存在差异?
if(false) and if(0)
if(true) and if(1)有效的方法是什么?
而当使用逻辑运算符时,它们的任何序列都可以优化性能
来自if((a & b) || c)和if(c || (a & b) )
有效的方法是什么?或者这两个是一样的?
和来自
if(a && b)和if(a & b)
有效的方法是什么?
和来自
if(a || b) and if(a | b)有效的方法是什么?
if(a || b) and if((a || b))注意到第二个if在两个额外的括号中,在性能上有什么区别吗?
请帮帮我.............提前谢谢。
发布于 2011-08-30 13:31:31
这也被称为“微优化”,通常不受欢迎。这种差异根本无法衡量。如果你可以减少50%的If“计算”时间(这对于优化来说是很大的),你最终将在最终产品中完全没有区别,除非你的代码只有if's而没有其他东西。让1个查询、文件操作甚至是循环/foreach更快一点会带来更大的不同。写if是为了可读性,而不是为了“速度”。
最后但并非最不重要的一点是:对于您需要衡量的每个基于性能的更改。进行隔离和重复的测试,以找出哪个更快。
发布于 2011-08-30 13:10:52
我不会混淆0、false/1和true的区别,除非您知道使用它的代码片段是一个瓶颈;这是真正的微优化。
至于| vs ||和& vs &&,请使用双字符,因为它们是短路的。至于部件的顺序,将始终对第一个部件求值(如果对&&或||求值),但仅当第一个部件不产生最终结果时才对第二个部件求值。因此,第一部分应该比第二部分更快。如果它们的速度一样快,那么它们的顺序应该没有关系。
额外的圆括号可能会使解析器减慢一分钟,但您可以缓存字节码,所以这不是什么大问题。
发布于 2011-08-30 13:25:14
所有这些优化都不会对您有太大帮助。PHP代码永远不会成为瓶颈,除非您正在运行一些重要的数据处理应用程序,比如将pi计算到一百万位。无论您的应用程序有多大,您都需要确保:
1)最小文件操作
2)大多数查询都应该使用索引
我的回答可能无关紧要,但只有在.01% of case中才是正确的
https://stackoverflow.com/questions/7238912
复制相似问题