Foros del Web » Programando para Internet » PHP »

Medir tiempo de metodos

Estas en el tema de Medir tiempo de metodos en el foro de PHP en Foros del Web. Buenas tardes, Actualmente ejecuto dos veces un método para medir el tiempo de ejecución de mis metodos. Me veo obligado a llamar a esta función ...
  #1 (permalink)  
Antiguo 31/10/2016, 12:39
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 10 meses
Puntos: 194
Medir tiempo de metodos

Buenas tardes,

Actualmente ejecuto dos veces un método para medir el tiempo de ejecución de mis metodos. Me veo obligado a llamar a esta función dos veces cada vez que ejecuto un método, y quisiera saber si se les ocurre alguna otra manera de ejecucción que no implique agregar estas dos lineas a los 1200 métodos que tiene el proyecto :/

Código PHP:
public static function microtimeFloat() {
  list(
$useg$seg) = explode(" "microtime());
  return ((float) 
$useg + (float) $seg);

Código PHP:
function metodo_a_testear(){
$inicial Utils::microtimeFloat();
//comportamiento del metodo
Utils::logearTxt(Utils::microtimeFloat() - $inicial);
return 
$resultado;

__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #2 (permalink)  
Antiguo 31/10/2016, 13:38
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Medir tiempo de metodos

Disculpa por la respuesta corta, pero hasta donde sé no hay otra manera.

No queda otra, lo que se me ocurre es pasar el método como parámetro pero sin que este se ejecute, algún tipo de callback, me refiero a algo así:

Código pseudoCodigo:
Ver original
  1. metodo1(){
  2. someCodeHere...
  3. }
  4.  
  5. tiempoEjec(param){
  6. inicio = tiempo();
  7. param;
  8. return tiempo()-inicio;
  9. }
  10.  
  11. demora = tiempoEjec(metodo1());

Esa es mi opinión. Ojalá te puedan solucionar el problema, Saludos.


Última edición por alvaro_trewhela; 31/10/2016 a las 13:46
  #3 (permalink)  
Antiguo 31/10/2016, 13:56
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años
Puntos: 379
Respuesta: Medir tiempo de metodos

Para eso existe el profiling, puedes usar xdebug o alguna otra herramienta similar https://xdebug.org/docs/profiler
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 31/10/2016, 14:07
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 10 meses
Puntos: 194
Respuesta: Medir tiempo de metodos

Cita:
Iniciado por hhs Ver Mensaje
Para eso existe el profiling, puedes usar xdebug o alguna otra herramienta similar https://xdebug.org/docs/profiler
Muchas gracias hhs, utilizo xdebug, pero para mi caso el problema es que necesito medir los tiempos en producción, los servidores y el volumen de datos que me dan en DEV y QA no son significativos y no me sirven :(

Voy a intentar agregando un prefijo a los metodos, y utilizar __call supongo.

Gracias!
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 01/11/2016, 08:35
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años
Puntos: 379
Respuesta: Medir tiempo de metodos

Para tu caso lo que necesitan mejorar es su proceso de desarrollo no mides eso en producción. Para eso es el servicio de DEV y QA que debes de tener automatizada las pruebas para diferentes escenario uno de ellos con un servicio que llene la base de datos para probar la solución con muchos datos.

Para llenar con información de prueba puedes usar soluciones como Faker y basado en eso crear una solución que te permita hacer seeders de la base de datos.
Por otro lado de la forma en que estas haciendo tu pruebas no vas a tener los resultados que esperas, ademas el código es solo una parte de la ecuación pueden existir cuellos en otros servicios. Existen otras soluciones para monitorear el estado del o los servidores con los servicios que estén ejecutando y ver de forma gráfica en que momento suceden picos y determinar si el cuello de botella es en el código, lo servicios de base de datos, http u otro.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: medir, metodos, tiempo
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 07:09.