您正在使用codeigniter
构建大型应用程序。因为应用程序非常大,性能是必须的。我想优化我的if else语句。
是否有使用性能的差异 从
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))
之间是否有任何性能差异
请注意,如果是另外两个括号中的第二个
请帮帮我................................... 提前谢谢。
答案 0 :(得分:4)
除非您知道使用它的代码是瓶颈,否则我不会混淆0
和false
/ 1
和true
区别。这真的是微观优化。
至于|
vs ||
和&
vs &&
,请使用双字符;他们短路。至于零件的顺序,将始终评估第一个零件(如果评估了&&
或||
,那么),但是只有第一个零件才会被评估。得出最终结果。因此,第一部分应该比第二部分更快。如果它们都同样快,那么它们处于哪个顺序并不重要。
额外的括号可能会使解析器减慢一分钟的速度,但您可以缓存字节码,因此这不是一个问题。
答案 1 :(得分:3)
这些优化都不会对您有所帮助。 PHP代码永远不会成为瓶颈,除非你运行一些严肃的数据处理应用程序,比如计算pi到一百万位。无论你的申请多大,你需要确保的是:
1)最小文件操作
2)您的大多数查询应使用索引
我的回复可能无关紧要,但只有.01%的情况才会出现
答案 2 :(得分:3)
这也被称为“微优化”,并且通常不赞成。差异几乎无法衡量。如果您可以减少50%的“计算”时间(这对于优化来说很重要),那么最终产品将完全没有区别,除非您的代码仅用于其他内容。使1个查询,文件操作甚至循环/ foreach更快一点都会产生更大的不同。写下你的ifs是为了便于阅读,而不是为了“速度”。
最后但同样重要的是:对于每次基于性能的更改,您都需要进行测量。做隔离和重复测试,找出更快的东西。
答案 3 :(得分:1)
Php花费大部分执行时间等待sql响应,所以不要专注于这些小优化,它们不会有所作为。 如果您仍有疑问,请使用microtime()监控每个步骤的执行时间。