2010-04-06 18 views
5

Actualmente estoy reescribiendo mi sitio usando mi propio framework (es muy simple y hace exactamente lo que necesito, no necesito algo como Zend o Cake PHP). He trabajado mucho para asegurarme de que todo está en la memoria caché, almacenando en la memoria caché las páginas en los archivos, así que evite las consultas SQL y, en general, limite el número de consultas sql.memoria php cuánto es demasiado

En general, parece que es muy rápido. El tiempo promedio tomado para la página principal (tomada más de 100 veces) es 0.046152 microsegundos.

Pero una cosa de la que no estoy seguro es si he hecho lo suficiente para reducir el uso de memoria php. La única vez que tuve problemas fue cuando subía archivos de gran tamaño.

Usando memory_get_peak_usage (TRUE), que THINK devuelve la mayor cantidad de memoria utilizada mientras el script se ha estado ejecutando, el promedio (tomado más de 100 veces) es de 1572864 bytes.

¿Eso es bueno?

Me doy cuenta de que no sabes qué es lo que estoy haciendo (es bastante simple, obtener los 10 últimos artículos, el recuento de comentarios para cada uno, obtener los controles del usuario, etiquetas populares en la barra lateral, etc.). ¿Pero estarías preocupado con un guión que use ese tipo de memoria que se golpea 50,000 veces al día? O una vez por segundo en las horas punta?

Me doy cuenta de que esta es una pregunta muy abierta. Espero que entiendas que es una puñalada en la oscuridad y realmente estoy buscando una nueva seguridad de que no va a morir de manera horrible el día del relanzamiento.

EDIT: Solo un mini experimento que hice por mi cuenta. Descargué e instalé Wordpress y una instalación predeterminada sin complementos adicionales, solo un usuario y solo una publicación, y usé 10.5 megabytes de memoria o "11010048 bytes". Muy contento con mi 1.5mb ahora.

Respuesta

3

Los valores de uso de la memoria pueden variar mucho y están sujetos a fluctuaciones, pero como usted ya dice en su actualización, una instancia regular de WordPress es mucho más que eso. He tenido grandes problemas para ejecutar WordPress backend con un memory_limit de dieciséis megabytes, y mucho menos cuando los Plug-ins entran en juego. Entonces a partir de eso, diría que un pico de 1,5 Megabytes realizando tareas normales está bastante bien.

El tiempo de generación está extremadamente sujeto al hardware en el que se ejecuta su sitio, obviamente. Sin embargo, un tiempo de generación de 0.046152 segundos (supongo que te refieres a los segundos aquí) me parece muy bien en circunstancias normales.

+0

También habría pensado en segundos. Sin embargo, mido el tiempo usando define ('START', microtime()) al comienzo y START - microtime() al final. Creo que estoy escribiendo pensando que esto me daría el tiempo necesario en microsegundos en lugar de segundos? – Rob

+0

@Rob ¿estás usando el parámetro 'float'? –

+0

php.net parece no especificar cuál es el valor predeterminado. Pero no, no estoy enviando ningún argumento a la función microtime. – Rob

3

Es una pregunta subjetiva. PHP tiene una gran sobrecarga y cuando se llama a la función con TRUE, se incluirá esa sobrecarga. Verás a qué me refiero cuando llames a la función en un simple script de Hello World. También tenga en cuenta que los resultados pueden diferir en gran medida dependiendo de si PHP se ejecuta como un módulo de Apache o FastCGI.

Lamentablemente, nadie puede ofrecer garantías. Siempre habrá variables imprevistas que pueden hacer caer un sitio. Realice la prueba de carga. Use un generador de perfiles de código para restringir la ubicación de los cuellos de botella para ver si hay formas de hacer esos bloques de código más eficientes

Encyclopaedia Britannica pensó que estaban preparados cuando lanzaron su enciclopedia publicitaria hace diez años. Los desarrolladores no sabían que lo anunciarían en Good Morning America el día del lanzamiento. Todo se vino abajo por días.

+0

¿Por qué habrá una gran sobrecarga al llamar a la función con TRUE? ¿No es que FALSO requiere más cálculo? – Pacerier

0

Siempre que sus sistemas no se intercambien, su uso de memoria es razonable. Cualquier preocupación adicional es solo una optimización prematura.

Cuestiones relacionadas