8

Erlang アプリケーションのプロセス間の作業配分についてもっと調べようとしています。プロセスによって実行されるリダクションの数は、とりわけ、私が興味を持っていることの 1 つです。

そのため、プロセスの終了時にプロセスの削減数を読み取る手段を探しています。プロセスがまだ実行されている間にこの種の情報を取得するのは非常に簡単ですが、プロセスが終了する直前 (または直後) に情報を取得することは別の話です。残念ながら、ドキュメント全体、特に dbg:* 関数を調べましたが、役に立ちませんでした。主な理由は、プロセスの終了について通知を受けるたびに、それについて何もするのが遅すぎるからです。

プロセスが終了する前にこれらの値を読み取るようにアプリケーション全体のコードを変更することはできません。VMコードに飛び込んでそれを計測する以外にそれを行う方法はありますか?

ありがとう

4

1 に答える 1

1

プロセスについては得られないと思いますが、 withとoptionsreductionsを実行することで、時間ベースの作業配分を得ることができます。それはあなたが望むものを手に入れるでしょう。当然、データを収集し、後処理またはジャストインタイム処理を行う必要があります。erlang:trace/3runningtimestamp

また、トレースのオプションprocsを使用して、必要なメタ情報 (開始、終了など) を取得します。

于 2012-04-11T19:27:51.507 に答える