Ich versuche, mehr über die Arbeitsverteilung zwischen den Prozesse meiner Erlang-Anwendung. Die Anzahl der von a Prozess ist unter anderem eines der Dinge, die mich interessieren.
Ich suche also nach einer Möglichkeit, die Anzahl der Kürzungen von a zu lesen Prozess, wenn es beendet wird. Es ist zwar ziemlich einfach zu bekommen Diese Art von Informationen, während die Prozesse noch ausgeführt werden, erhalten sie kurz bevor (oder richtig nach) sie verlassen, ist eine andere Geschichte. ich habe sah die ganze Dokumentation, besonders dbg: * Funktionen, leider ohne Erfolg. Meistens weil ich immer benachrichtigt werde über den Ausgang eines Prozesses ist es schon zu spät, etwas zu tun darüber.
Ändern des Codes der gesamten Anwendung, um diese Werte zu lesen bevor der Prozess beendet wird, ist dies nicht möglich. Gibt es einen Weg, es zu tun? außer in den VM-Code einzutauchen und ihn zu instrumentieren?
Danke
Ich glaube nicht, dass Sie reductions
für Prozesse bekommen können, aber Sie könnten eine zeitbasierte Arbeitsverteilung erhalten, indem Sie eine erlang:trace/3
mit running
und timestamp
-Optionen ausführen. Das würde dir helfen, was du willst, denke ich. Natürlich müssen Sie die Daten sammeln und eine Nachbearbeitung oder Just-in-Time-Verarbeitung durchführen.
Ich würde auch die Option procs
für die Ablaufverfolgung verwenden, um die notwendigen Meta-Informationen zu erhalten, d. h. gestartet, beendet usw.