2010-12-01 15 views
12

Duplicar posible:
Why is require_once so bad to use?PHP incluye vs include_once (velocidad)

He leído en alguna parte que los include_once y require_once declaraciones en PHP eran más lentos que sus contrapartes no una vez. ¿Es esto una desaceleración significativa? ¿Ha habido alguna prueba o estudio de esto, y ha cambiado en las versiones recientes de PHP?

+2

pregunta repetida - http://stackoverflow.com/questions/186338/why-is-require-once-so-bad-to-use – ajreal

+1

¿Por qué el downrate? – Cybrix

Respuesta

14

El aumento de la velocidad es mínimo y se produce cuando se realiza una verificación de referencia para evitar la duplicación del código. El apéndice "una vez" es una medida preventiva contra el mismo código que se ejecuta/incluye dos veces ... esto realizar este control tiene un costo de velocidad menor.

Si alguna vez hay una instancia en la que esté usando _once observe por qué es así, ¿su código está realmente construido de la manera más eficiente? A menudo es mejor eliminar la necesidad de confiar en _once y producir un mejor código (¡más fácil decirlo que hacerlo!).

Ver:

http://forums.digitalpoint.com/showthread.php?t=1693837

http://www.phpbb.com/community/viewtopic.php?f=71&t=565933

http://www.sitepoint.com/forums/showthread.php?t=269085

http://www.quora.com/What-is-the-difference-between-functions-include-and-include_once-in-PHP

3

El include_once y require_once funciones son más lentos que incluyen y requieren, simplemente porque un seguimiento de los archivos que ya tienen abeja n incluido, para evitar incluirlos más de una vez.

Pero eso no debería importar en absoluto, ya que es probable que haya muchas maneras de optimizar su aplicación, mucho más eficiente que esta.

+1

Solo para aclarar: las funciones 'include_once' y' require_once' solo son más lentas cuando el script se ejecuta * exactamente * una vez. Si un script en particular 'foo.php' se incluye a través de' include', entonces se ejecuta todas las veces. Si se incluye a través de 'include_once', entonces hay un costo de velocidad mínimo para verificar si se ha ejecutado, pero en cada ejecución, excepto en la primera, el script no se ejecuta. – jvriesem