2010-11-25 8 views
3

Erlangで受信したメッセージの時刻を取得するにはどうすればよいですか?受信したメッセージの時刻を取得する

gen_serverへの受信メッセージの頻度に応じて何かを計算したいと思います。

メッセージ1、ある時間、メッセージ2、ある時間。 メッセージ間の時間を取得します。

おかげ

+0

料金計算中ですか? :) –

+0

はい。 1つはトレントのアップ/ダウン速度の合計、もう1つはピアチョーク、個々のピアレート計算です。 – jarryd

答えて

5

あなたがメッセージを受け取るstatistics(wall_clock)するたびに使用することができます。 返すタプルの2番目のメンバーは、2つの受信の間の時間(ミリ秒単位)です。

編集

rvirdingが彼のコメントで述べているように、あなたもnow()を使用し、それに応じて時間差を計算することができます。 Erlang/OTP配布の$ERL_TOP/lib/stdlib/src/ディレクトリにあるsupervisor.erlをご覧ください。そのモジュールの最後の行(関数addRestart、およびdifference)は、now()を使用して再起動の頻度を計算します。

+3

より正確には、 'statistics(wall_clock)'を2回呼び出すまでの時間です。もう1つの方法は、マイクロ秒の解像度を返す 'now()'を使うことです。 – rvirding

関連する問題