Как узнать время получения сообщения в Эрланге?
Я хочу вычислить что-то в соответствии с частотой полученных сообщений на gen_server.
например, сообщение 1, некоторыевремя, сообщение 2 некоторое время.получить время между сообщениями.
Спасибо
Вы можете использовать statistics(wall_clock) каждый раз, когда получаете сообщение.Второй член кортежа, который он возвращает, будет временем между двумя получениями (в миллисекундах).
statistics(wall_clock)
Редактировать :
Как упоминает Рирдинг в своем комментарии, вытакже используйте now() и затем рассчитайте разницу во времени соответственно.Взгляните на supervisor.erl в каталоге $ERL_TOP/lib/stdlib/src/ вашего дистрибутива Erlang / OTP.Последние строки этого модуля (функции addRestart, inPeriod и difference) вычисляют частоту перезапусков, используя now().
now()
supervisor.erl
$ERL_TOP/lib/stdlib/src/
addRestart
inPeriod
difference