2012-04-05 2 views
8

Ich versuche, mehr über die Arbeitsverteilung zwischen den Prozessen meiner Erlang-Anwendung herauszufinden. Die Anzahl der Kürzungen, die von einem Prozess ausgeführt werden, ist unter anderem eines der Dinge, die mich interessieren.Erlang Processes Reduktionszählung

So suche ich nach einem Mittel zum Lesen der Anzahl der Kürzungen eines Prozesses, wenn es beendet wird. Während es ganz einfach ist, diese Art von Informationen zu erhalten, während die Prozesse noch ausgeführt werden, bekommen sie kurz vor (oder richtig nach) sie sind eine andere Geschichte. Ich habe sah über die gesamte Dokumentation, speziell dbg: * Funktionen, leider vergeblich. Meistens, weil, wann immer ich über den Ausgang eines Prozesses benachrichtigt wird, ist es bereits zu spät, irgendetwas darüber zu tun.

Ändern des Codes der gesamten Anwendung zum Lesen dieser Werte vor dem Beenden des Prozesses ist nicht durchführbar. Gibt es eine Möglichkeit, es zu tun andere als Tauchen in den VM-Code und Instrumentierung es?

Dank

Antwort

1

Ich glaube nicht, Sie reductions für Prozesse zu bekommen, aber man kann, indem Sie ein erlang:trace/3 mit running und timestamp Optionen, um eine zeitbasierte Arbeitsverteilung zu erhalten. Das würde dir helfen, was du willst, denke ich. Natürlich müssen Sie die Daten sammeln und eine Nachbearbeitung oder vielleicht Just-in-Time-Verarbeitung durchführen.

ich auch die Möglichkeit, procs auf die Spur verwenden würde die notwendigen Meta-Informationen zu erhalten, dh gestartet, beendete usw.

+0

Nun, landete ich genau das zu tun up ... Es ist schade, dass die Spur/3 und folglich dbg: habe diese Art von detaillierter Option nicht. – Francesquini