otro otra llamar incluir include_once funcion ejemplo desde carpeta archivo php include performance filesize

otra - llamar funcion php desde otro php



PHP include(): TamaƱo y rendimiento del archivo (3)

Una pregunta de PHP sin experiencia:

Tengo un archivo de script PHP que necesito incluir en diferentes páginas muchas veces en muchos lugares.

Tengo la opción de dividir el archivo incluido en varios archivos más pequeños e incluirlos según sea necesario ... O ... Podría mantenerlo todo junto en un único archivo PHP.

Me pregunto si hay algún impacto en el rendimiento de usar un archivo más grande frente a un archivo más pequeño para include () en este contexto. Por ejemplo, ¿hay alguna diferencia de rendimiento entre un archivo de 200 KB y un archivo de 20 KB?

Gracias.


Habrá una diferencia, entre un archivo de 200KB y 20KB ... Pero probablemente no lo notarás: un archivo de 200KB no es tan grande, y generalmente usas muchos archivos que no son "pequeños", cuando estamos construyendo una gran aplicación.

Hay dos cosas que llevan tiempo, cuando está cargando un archivo .php :

  • El código fuente de PHP está "compilado" a "códigos de operación" , que es bastante equivalente al bytecode de JAVA
    • Esto se hace cada vez que se incluye un archivo PHP, por defecto
    • Pero, usando un caché de código de operación como APC , esos códigos de operación se pueden mantener en la memoria, y esta compilación no se hace cada vez más, lo cual es genial: significará menos CPU utilizada, ya que la compilación ya no se realizará ( se hará solo de vez en cuando) .
  • Los códigos de operación se ejecutan
    • Dependiendo de lo que contenga el script, esto puede llevar algo de tiempo, o no:
    • Si el archivo solo contiene funciones o definiciones de clases, esto no llevará mucho tiempo: no se ejecutará nada.
    • Si el archivo contiene instrucciones, llevará más tiempo ^^


Como nota al pie: en una situación general, obtendrá mucho más tiempo / CPU / recursos optimizando sus consultas SQL, o agregando algún mecanismo de almacenamiento en caché, que pensando en ese tipo de cosas.


Sin duda hay un impacto, así que asegúrese de usar include_once () en lugar de include (). Tal vez podría considerar usar APC que tiene un caché de inclusión.


Tenga cuidado con include_once() (y también require_once() ), es más costoso de ejecutar que include() . Cada vez que se ejecuta include_once() , PHP hace una búsqueda contra un índice interno de archivos ya incluidos antes de decidir si cargar el archivo o no. Cuanto más se incluye en el índice, más lenta es esta búsqueda. Además, al usar include() o include_once() intente utilizar rutas absolutas siempre que sea posible, ya que esto es mucho más rápido que las rutas relativas porque no está forzando a PHP a encontrar la ruta absoluta para usted. Como dijo ggiroux, alguna forma de almacenamiento en caché como APC obtendrá grandes recompensas y hará que te preocupes por la cantidad de llamadas incluidas que tienes como irrelevantes (en gran parte) (a menos que tengas un código mal escrito).

EDITAR--

Preocuparse por las llamadas anteriores es solo un problema una vez que comience a tener miles de requires o includes en su base de código.