2010-12-16 17 views
5

mientras que la codificación, yo sólo hice esta pregunta: ¿¿Qué es más rápido? if() return; else return; O si() regresa; regreso;

es más rápido:

if(false) return true; 
else return false; 

que esto?

if(false) return true; 
return false; 

Por supuesto, si hay una diferencia que es ridículo, pero mi curiosidad no se irá hasta que sepa que: D

+1

¿Usted intentó Xdebug? ¿Y por qué crees que es un cuello de botella de rendimiento importante? : | Por cierto, ambos carecen de legibilidad. – mario

+2

Mídelo. Un acelerador/compilador adecuado optimizaría los dos para volver 'false' – erenon

+3

El segundo será más rápido ya que utiliza menos una ficha (no hay T_ELSE). Pero estás hablando de microsegundos en el mejor de los casos. Esta es la definición misma de una micro-optimización. No se preocupe por ella, y escribir el código que hace que el sentido más semántica ... – ircmaxell

Respuesta

15

Justo:

return !false; 

Así que en la vida real ejemplo

return !$this->isSth(); 

// Not 

if ($this->isSth) { 
    return false; 
} else { 
    return true; 
} 

El rendimiento no es importante aquí: cada solución es extremadamente rápida, no hay necesidad de optimización. Recuerde las palabras de Donald Knuth:

optimización prematura es la raíz de todo mal

+4

optimización prematura es la raíz de todo mal - DonaldKnuth./Presupuesto adecuadamente los grandes:) – erenon

+0

Yo no quiero citar a nadie. De todos modos ... arreglado. – Crozin

+0

Eso es lo que pensé, es mejor tener un código más comprensible de dichos diferencias mínimas de rendimiento. ¡Gracias! – Pioul