2012-04-05 15 views
8

Estoy tratando de obtener más información acerca de la distribución del trabajo entre los procesos de mi aplicación Erlang. El número de reducciones ejecutadas por un proceso es, entre otras, una de las cosas que me interesan.Recuento de reducción de procesos Erlang

Así que estoy buscando un medio para leer el número de reducciones de un proceso cuando se cierra. Si bien es bastante sencillo obtener este tipo de información mientras los procesos todavía se están ejecutando, obtenerlos justo antes (o justo después) de que salgan es otra historia. Tengo revisé toda la documentación, especialmente las funciones dbg: *, , lamentablemente, fue en vano. Principalmente porque cada vez que se me notifica sobre la salida de un proceso, ya es demasiado tarde para hacer algo al respecto .

Cambiar el código de la aplicación completa para leer estos valores antes de que los procesos salgan es inviable. ¿Hay alguna manera de hacerlo que no sea sumergirse en el código de VM e instrumentarlo?

Gracias

Respuesta

1

no creo que se puede obtener reductions para los procesos, pero se puede conseguir una distribución del trabajo basado en el tiempo haciendo una erlang:trace/3 con runningtimestamp y opciones. Eso te daría lo que quieres, creo. Naturalmente, debe recopilar los datos y realizar un procesamiento posterior o, tal vez, justo a tiempo.

También me gustaría utilizar la opción procs a la traza para conseguir la meta-información necesaria, es decir, se inició, etc. terminados

+0

Bueno, terminé haciendo exactamente eso ... Es una lástima que la traza/3 y, en consecuencia, dbg: no tiene este tipo de opción detallada. – Francesquini

Cuestiones relacionadas