Foros del Web » Programando para Internet » PHP »

Comprobar en que linea de codigo esta cargando el sistema

Estas en el tema de Comprobar en que linea de codigo esta cargando el sistema en el foro de PHP en Foros del Web. Hola, os comento brevemente: Necesito conocer si es posible, en PHP/Joomla, como comprobar en que archivo/línea de código/función esta cargando/perdiendo tiempo/ la pagina web. En ...
  #1 (permalink)  
Antiguo 25/09/2013, 16:08
 
Fecha de Ingreso: julio-2010
Mensajes: 134
Antigüedad: 13 años, 9 meses
Puntos: 0
Comprobar en que linea de codigo esta cargando el sistema

Hola,
os comento brevemente:
Necesito conocer si es posible, en PHP/Joomla, como comprobar en que archivo/línea de código/función esta cargando/perdiendo tiempo/ la pagina web.

En concreto,
Tengo un muro donde los usuarios escriben mensajes, y tengo el siguiente problema:
Al enviar un mensaje, tarda casi 2 min de reloj en enviarlo.
Ademas al pulsar el botón se envía por email a todos los usuarios del muro registrados. He hecho varias pruebas y sospecho que en el envio del email donde tarda. Solo envía un email, pero a muchos destinatarios. Los usuarios son unos 700-1000.

Pienso que es bastante, pero no para tardar 2 min en hacerlo.

¿Hay alguna forma/herramienta de depurar esto y ver donde se esta quedando cargando la pagina?

Gracias!
  #2 (permalink)  
Antiguo 25/09/2013, 17:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Comprobar en que linea de codigo esta cargando el sistema

Estás consciente de que enviar un e-Mail a múltiples destinatarios, no implica en la red que envías uno, sino que el sisetma replica el mail N veces?
Es decir, es perfectamente posible que el sistema tarde dos minutos en enviar ese mail, porque en realidad en alguna parte, el sistema está creando 700 a 1.000 mails y enviándolos a sus destinatarios.
¿Te parece que eso no afecta la performance?

Para estar seguros, sería buena idea que nos postearas el bloque de codigo donde se genera ese e-mail, para verificar si estás enviando un único mail con copia, o enviando esos 1000 que yo supongo...

Simplificando: No estás dando suficiente información para proveerte de una solución. Lo que nos dices apenas alcanza para hacer suposiciones, como esta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/09/2013, 18:21
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Comprobar en que linea de codigo esta cargando el sistema

Independientemente de si haces uso óptimo de las copias de email o un email por destino, es buena idea dejar el envío de email en una tarea independiente del script que usa el usuario para no afectar su tiempo de respuesta.

Almacenas los email a enviar en una cola y mediante un cronjob puedes verificar si hay emails pendientes, enviarlos.
  #4 (permalink)  
Antiguo 26/09/2013, 05:20
 
Fecha de Ingreso: julio-2010
Mensajes: 134
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Comprobar en que linea de codigo esta cargando el sistema

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Estás consciente de que enviar un e-Mail a múltiples destinatarios, no implica en la red que envías uno, sino que el sisetma replica el mail N veces?
Es decir, es perfectamente posible que el sistema tarde dos minutos en enviar ese mail, porque en realidad en alguna parte, el sistema está creando 700 a 1.000 mails y enviándolos a sus destinatarios.
¿Te parece que eso no afecta la performance?

Para estar seguros, sería buena idea que nos postearas el bloque de codigo donde se genera ese e-mail, para verificar si estás enviando un único mail con copia, o enviando esos 1000 que yo supongo...

Simplificando: No estás dando suficiente información para proveerte de una solución. Lo que nos dices apenas alcanza para hacer suposiciones, como esta.
Entiendo lo que dices....
A ver, detallo...

El problema de poner cod, es que es de un componente de joomla. EN concreto hace uso de dos.
GroupJive que digamos es un componente para que los usuarios escriban post en un muro.
Y ComunityBuilder, un componente enorme que hace muchas cosas, entre ellas tiene una clase PHPmailer personalizada de la cual hace uso el subcomponente GroupJive.

Por lo que la forma en la que manda emails, la he estado mirando, y hace lo mismo que si usaras PHPmailer. Va añadiendo en un bucle los diferentes emails, y luego lo envían.

Entiendo, que mandar 1000 emails tarde, pero tanto como 2 min? El servidor es un VPS, con 8 gigas de RAM y buena CPU.

-----------------------

Sobre lo que comenta el compañero siguiente, entiendo lo de ponerlo en una cola, yo es lo que esperaba... pero claro, ya esperaba que estuviera implementado en el componente que he nombrado de joomla. Pero parace que no es asi....
Y ya no se que hacer
  #5 (permalink)  
Antiguo 26/09/2013, 06:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Comprobar en que linea de codigo esta cargando el sistema

Cita:
El servidor es un VPS, con 8 gigas de RAM y buena CPU.
Estás pensando en hardware, y no estás considerando la latencia de red.
Que el proceso pueda ser rápido en local, no implica que el tiempo de envío y respuesta hacia la web sea veloz. Son dos cosas diferentes.
Lo que deberías probar es ese mismo proceso en un host con mejores capacidades. Lo que hagas en localhost no es muy relevante para establecer performance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 26/09/2013, 06:58
 
Fecha de Ingreso: julio-2010
Mensajes: 134
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Comprobar en que linea de codigo esta cargando el sistema

Ya, si tienes razón...
Pero no se que hacer....

De hecho existe una graficas de hardware que indican lo típico, procesos, uso de cpu, y hay una que se llama:

Gráficas del Servicio de correo - Numero de emails a la cola de postfix
El eje y, se representa en 0.0 K, 0.1k, 0.2 k...etc
Lo que supongo que será valores de 100, 200... o 1000 en el caso de 1.k.

Ayer hice una prueba en un muro que tenían 1000 usuarios, y la grafico se disparo hasta 1.0 k aprox,

Esta mañana he hecho otra prueba, en el mismo muro, y sin embargo solo ha subido hasta 0,4 k.

Estas tablas son fiables?
Que mas puedo hacer para comprobar que se envían todos los correos?

Etiquetas: cargando, sistema, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:39.