2010-11-25 6 views
3

Comment peut-on obtenir le temps du message reçu en Erlang?Obtenir le temps du message reçu

Je veux calculer quelque chose en fonction de la fréquence des messages reçus au gen_server.

par exemple. message 1, un peu de temps, message 2 un peu de temps. récupère le temps entre les messages.

Merci

+0

calcul du taux? :) –

+0

oui. Un pour la vitesse totale vers le haut/bas pour le torrent, puis aussi pour l'étouffement par les pairs, le calcul de la fréquence par les pairs individuels. – jarryd

Répondre

5

Vous pouvez utiliser statistics(wall_clock) chaque fois que vous recevez un message. Le second élément du tuple il renvoie sera le temps entre les deux reçoit (en millisecondes).

Modifier:

Comme rvirding mentionne dans son commentaire, vous pouvez également utiliser now() puis calculer la différence de temps en conséquence. Jetez un oeil à supervisor.erl dans le répertoire $ERL_TOP/lib/stdlib/src/ de votre distribution Erlang/OTP. Les dernières lignes de ce module (fonctions addRestart, et difference) calculent la fréquence des redémarrages en utilisant now().

+3

Ou, pour être plus précis, le temps écoulé entre deux appels à 'statistics (wall_clock)'. Une alternative consiste à utiliser 'now()' qui renvoie une résolution de microsecondes. – rvirding

Questions connexes