2009-11-28 17 views
5

Tengo una biblioteca PHP de 1.9MB que estoy incluyendo al comienzo de mis scripts. Contiene todos mis objetos de base de datos, métodos, etc. necesarios para mi sitio web. Toma de 0,1 a 0,3 segundos para incluirlo cada vez.¿Cómo puedo mejorar el rendimiento de 'include() s' en PHP?

Uso eAccelerator para almacenar en caché el bytecode de este archivo. ¿Qué más puedo hacer para optimizar el rendimiento de este 'incluir'?

+3

Por curiosidad, ¿cuánto tiempo lleva a) generar el resto de la página, b) descargar la página? –

+0

Dependiendo de la página y la cantidad de información que cargue, puede tomar de 0 a 0.5 segundos para generar el resto de la página, y generalmente alrededor de 0.2s-1.1s. para descargar la página ... Quiero exprimir todo lo que pueda de la página. : P –

Respuesta

8

Dividirlo en módulos y cargar los trozos solo cuando sea necesario. Creo que esa es la única forma de mejorar realmente el rendimiento, he estado en la misma situación y solo eso lo resolvió. Es demasiado código para incluir, en mi mente, demasiado. Le apuesto una cerveza a que no necesita todos los 1.9MB de código en cada contexto.

+0

Creo que si hiciéramos esa apuesta probablemente ganarías. : P He leído sobre la división de la biblioteca en módulos. La pregunta de diseño ahora es: ¿Cuál es la mejor metodología para dividir los archivos? También estoy considerando utilizar los métodos __autoload de php para incluir clases como se llaman, pero esto parece tener un poco de sobrecarga. –

+2

Para responder a eso, debería explicar un poco qué tipo de proyecto es y en qué consiste la biblioteca. En general, obviamente, los dividiría temáticamente en grupos de funciones/objetos utilizados con más frecuencia. Funciones de imagen aquí, funciones de seguridad allí ... Pero eso es algo que finalmente solo tú puedes decidir. –

+0

Es un proyecto grande con bastantes subconjuntos diferentes de funcionalidad. La biblioteca consta de objetos/métodos y mapas de esquema de base de imágenes, seguridad, amistades, usuarios, grupos, mensajes, 'pokes', etc. Me temo que la funcionalidad utilizada en cada página no está bien mapeada, por lo que la creación de un mapa de solicitudes a las bibliotecas requeridas sería mi principal preocupación, ya que sería mi mayor oportunidad de tiempo. –

Cuestiones relacionadas