| Message |
Time in seconds
|
|
|---|---|---|
| Component initialization and startup | 0,156310 |
|
| Controller Action | 0,343630 |
|
| Render Controller Action | 0,255050 |
|
| Rendering View | 0,247930 |
|
| Rendering APP/views/resources/view.ctp | 0,202970 |
|
| Rendering APP/views/elements/resources/badges_block.ctp | 0,004200 |
|
| Rendering APP/views/elements/resources/details_block.ctp | 0,010160 |
|
| Rendering APP/views/elements/resources/user_block.ctp | 0,001730 |
|
| Rendering APP/views/elements/resources/status_block.ctp | 0,004580 |
|
| Rendering APP/views/elements/resources/categories_block.ctp | 0,011290 |
|
| Rendering APP/views/elements/resources/tags_block.ctp | 0,003470 |
|
| Rendering APP/views/elements/resources/attachments.ctp | 0,000550 |
|
| Rendering APP/views/elements/resources/authors.ctp | 0,000330 |
|
| Rendering APP/views/layouts/default.ctp | 0,042250 |
|
| Rendering APP/views/elements/search.ctp | 0,021230 |
|
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP en Español" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a cakep...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a cakephp-esp...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-esp?hl=es.
¿Por qué lo preguntas? No creo que importe.
¿Cual es el tamaño de la pagina y la velocidad de transferencia de la
conexion a tu server?
41 consultas por pagina es un numero muy elevado. ¿tienes pool de
conexiones a la BD?
¿que elementos manejas en la pagina? (#imgs, css , ajax)
Instala firebug y activa la pestaña de red, ¿cuanto tiempo tardas en
servir cada elemento?
¿que otros procesos corren en el server? (log de bd, respaldos)
Saludos
Pedro Arana
--
Defiende tu derecho a pensar, porque incluso pensar de manera errónea
es mejor que no pensar.
-Hipatia de Alejandría
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP en Español" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a cakep...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a cakephp-esp...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-esp?hl=es.
Muchas gracias por intentar ayudarme. Os contesto a vuestras preguntas:
Joaquín dijo:
> Los otros segundos podrian ser la latencia del solicitud y los demas
> elementos de la pagina (scripts, imagenes...)
La página completa HTML + elementos como js, imgs, etc. tarda más de los
3 s en cargarse, pero lo que me preocupa es que el apache tarda 3 s en
procesar el PHP y devolver el HTML al navegador.
José Lorenzo dijo:
>No tienes configurado ningun tipo de cache? Me refiero a si tienes
>permisos de escritura sobre tmp/, porque bien el framework se puede
> tomar ese tiempo en leer todos los archivos para cada request si no
>tienes ningun cache activado. En modo desarrollo el cache dura 30
>segundo, puedes hacer peticiones sucesivas y ver si el tiempo
>disminuye,
El apache sí que puede escribir en el directorio tmp. Normalmente tengo
el debug activado, aunque lo he desactivado y el rendimiento no ha
mejorado. Recargando la página varias veces, el tiempo que tarda en
responder el servidor no varia apenas, estando en torno a los 3 s. En el
directorio cache aparecen los modelos y en el persistent también hay
algunos ficheros.
Juazisco dijo:
> tuve le mismo problema pero por no configurar mi DB, habilite el cache
en mysdql e implemente indices necesarios.
Las consultas de la base de datos devuelven pocos registros. Tengo los
índices creados. En el log de consultas realizadas, el tiempo acumulado
no supera los 50 ms.
Pedro arana dijo:
> ¿Cual es el tamaño de la pagina y la velocidad de transferencia de la
> conexion a tu server?
6 KB. Apache local (http://localhost). Transferencia >> 100 Mbps
> 41 consultas por pagina es un numero muy elevado. ¿tienes pool de
> conexiones a la BD?
Utilizo el driver mysqli para conectar a la MySQL. De las 41 consultas,
19 corresponden a los describe que hace el framework. 4 son de las ACL y
2 son las que obtienen los datos que muestro en la página.
> ¿que elementos manejas en la pagina? (#imgs, css , ajax)
Es la generación del HTML lo que tarda los 3 s. Después hay que
descargar el resto de elementos, pero en eso ya no influye cakePHP.
> Instala firebug y activa la pestaña de red, ¿cuanto tiempo tardas en
> servir cada elemento?
Lo tengo instalado. 2,96 s en obtener la página (2,93 s: waiting for
response, +29 ms receiving data). La página carga por completo en 7,74
s, pero es que tengo que quitar un montón de javascript que me sobran.
Pero ahora mismo lo que quiero es reducir los 2,93 s que tarda el apache
en generar la página.
> ¿que otros procesos corren en el server? (log de bd, respaldos)
Es el ordenador de desarrollo. Core 2 duo @2.53Ghz con 6GB RAM y con
apenas carga. He probado en un servidor de un hosting (servage) y va
todavía más lento.
[...]
> La página completa HTML + elementos como js, imgs, etc. tarda más de los
> 3 s en cargarse, pero lo que me preocupa es que el apache tarda 3 s en
> procesar el PHP y devolver el HTML al navegador.
has hecho cambios a la configuracion del Apache?
a la configuracion del PHP?
quizas algo relacionado con el sistema operativo? (cual usas?)
probaste en distintos navegadores?
> José Lorenzo dijo:
>>No tienes configurado ningun tipo de cache? Me refiero a si tienes
>>permisos de escritura sobre tmp/, porque bien el framework se puede
>> tomar ese tiempo en leer todos los archivos para cada request si no
>>tienes ningun cache activado. En modo desarrollo el cache dura 30
>>segundo, puedes hacer peticiones sucesivas y ver si el tiempo
>>disminuye,
>
> El apache sí que puede escribir en el directorio tmp. Normalmente tengo
> el debug activado, aunque lo he desactivado y el rendimiento no ha
> mejorado. Recargando la página varias veces, el tiempo que tarda en
> responder el servidor no varia apenas, estando en torno a los 3 s. En el
> directorio cache aparecen los modelos y en el persistent también hay
> algunos ficheros.
podrias tratar de probar de alguna forma medir cuanto se demora Apache
en mostrar una pagina estatica. o un controlador de Cake sin consultas
a la BD y con una vista simple.
> Juazisco dijo:
>> tuve le mismo problema pero por no configurar mi DB, habilite el cache
> en mysdql e implemente indices necesarios.
>
> Las consultas de la base de datos devuelven pocos registros. Tengo los
> índices creados.
si tienes pocos registros probablemente MySQL ni use los indices...
> En el log de consultas realizadas, el tiempo acumulado
> no supera los 50 ms.
probaste ejecutar las mismas consultas directamente en MySQL? (prueba
con la mas "lenta")
> Pedro arana dijo:
>> ¿Cual es el tamaño de la pagina y la velocidad de transferencia de la
>> conexion a tu server?
>
> 6 KB. Apache local (http://localhost). Transferencia >> 100 Mbps
>
>> 41 consultas por pagina es un numero muy elevado. ¿tienes pool de
>> conexiones a la BD?
>
> Utilizo el driver mysqli para conectar a la MySQL. De las 41 consultas,
> 19 corresponden a los describe que hace el framework. 4 son de las ACL y
> 2 son las que obtienen los datos que muestro en la página.
las de los describe no se ejecutan cuando debug esta en 0.
>> ¿que elementos manejas en la pagina? (#imgs, css , ajax)
>
> Es la generación del HTML lo que tarda los 3 s. Después hay que
> descargar el resto de elementos, pero en eso ya no influye cakePHP.
>
>> Instala firebug y activa la pestaña de red, ¿cuanto tiempo tardas en
>> servir cada elemento?
>
> Lo tengo instalado. 2,96 s en obtener la página (2,93 s: waiting for
> response, +29 ms receiving data). La página carga por completo en 7,74
> s, pero es que tengo que quitar un montón de javascript que me sobran.
> Pero ahora mismo lo que quiero es reducir los 2,93 s que tarda el apache
> en generar la página.
estas seguro que por ejemplo en alguna parte del HTML no estas
incluyendo codigo javascript directamente desde Internet?
>> ¿que otros procesos corren en el server? (log de bd, respaldos)
>
> Es el ordenador de desarrollo. Core 2 duo @2.53Ghz con 6GB RAM y con
> apenas carga. He probado en un servidor de un hosting (servage) y va
> todavía más lento.
yo diria que tu problema no es Cake.
--
Ricardo Mun~oz A.
Crea una vista que solo contenga la instruccion phpinfo(). Corre y
mide el tiempo.
Crea un test.php con phpinfo() y correlo fuera de cake, mide el tiempo
¿que esta alenteciendo tu pagina?
Apache mal configurado: no hay mucha diferencia entre tiempo en ambas pruebas
Cake haciendo "algo" : la vista tarda mucho mas que test.php
Codigo que tu hiciste: Ambos tardan muy poco tiempo en comparación a tu pagina
Si estas trabajando sobre linux/unix podrias intentar usar microtime()
para rastrear donde estas perdiendo tiempo.
El phpinfo() sin pasar por cake: 33 ms (14 ms esperando la respuesta y
19 ms recibiendo datos).
El phpinfo en una vista. He añadido la acción phpinfo a un controlador,
vacío, y en la vista llamo a phpinfo(). En este caso 2,59 s (2,27 s +
316 ms).
He quitado todos los componentes del app_controller.php, también los
helpers, pero la vista con el phpinfo sigue tardando 2,37 s.
Tendré que investigar a fondo a ver donde se va el tiempo. Trabajo bajo
linux. Voy a ver si aprendo a usar la función de "profiling" de xdebug y
detecto la "fuga".
Gracias
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP en Español" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a cakep...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a cakephp-esp...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/cakephp-esp?hl=es.
En mi aplicación uso un plugin llamado searchable para el motor de
búsqueda Lucene. Este plugin es responsable de muchas de las llamadas a
array_merge. Si lo quito, el número de llamadas a array_merge se reduce
a 1.765 y el tiempo total baja a 112 ms. El plugin incluye un behaviour
asociado a uno de mis modelos.
Acabo de localizar la causa del problema en el setup del behaviour del
plugin anterior, concretamente en una llamada a App::import:
App::import('Vendor', 'Zend/Search/Lucene', array('file' =>
'Zend'.DS.'Search'.DS.'Lucene.php'));
En el directorio vendors tengo un montón de carpetas (todo el framework
de Zend más otras cosas). No se por qué razón, el método App::import
debe estar recorriendo todo el árbol de carpetas del sistema de archivos
bajo la carpeta vendors.
Si sustituyo el import anterior por un include_once, entonces desaparece
el montón de llamadas a Folder->read, Folder->__tree y array_merge
include_once '/home/user/workspace/app/vendors/Zend/Search/Lucene.php';
Ahora el phpinfo de la vista me tarda 700 ms. Sigue siendo mucho más que
un simple phpinfo(), pero el framework conlleva bastante sobrecarga.
Gracias por vuestra ayuda. Si alguien sabe como hacer que el App:import
cargue el archivo igual que el include, su ayuda será bienvenida :-)
El vie, 15-01-2010 a las 13:49 -0600, Pedro Arana escribió:
Pues probé con el debug a 0, pero no observé ninguna mejora en el
rendimiento. Me temo que tenía deshabilitada la caché y por eso no
funcionaba aunque desactivase el debug :-(
Configure::write('Cache.disable', true);
Ahora mismo se me ha roto algo del componente ACL, supongo que por
cambios que hice para encontrar el problema de la clase Folder. Cuando
lo arregle probaré a poner otra vez los App::import y ver si con la
caché se evitan las numerosas llamadas a los métodos de Folder.
Saludos y gracias
Activando la cache y desactivando el modo debug, a pesar de mantener los
App::import, la aplicación ya no tarda tanto en generar las páginas.
Ahora basta con unos 700 ms.
Misterio resuelto :-)
Salu2
On 17 ene, 04:45, Luis Leiva <tengu...@gmail.com> wrote:
> el Lucene es para realizar busquedas de resultados html?
> no has probado algo del Sphinx?
Yo tampoco he usado Sphinx. Hasta donde yo sé, Lucene es un buscador
full-text, que dicen, que resuelve el (nada trivial) problema de
realizar búsquedas por relevancia de cualquier tipo mediante una
sencilla interfaz. Para ello, se vale de un índice que, como Google,
trabaja con algoritmos que manipulan espacios métricos de alta
disponibilidad al que puedes añadirle documentos formados por campos
de varios tipos (que son los que contienen la información indexable).
En resumen, Lucene nos facilita la vida.