获取收到消息的时间
Erlang 中如何获取收到消息的时间?
我想根据 gen_server 收到消息的频率来计算一些内容。
例如,消息 1,某个时间,消息 2,某个时间。 获取消息之间的时间。
谢谢
How does one get the time of the received message in Erlang?
I want to calculate something according to the frequency of the received messages to the gen_server.
e.g. message 1, some time, message 2 some time.
get the time between messages.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以分别使用
statistics(wall_clock)
您收到消息的时间。它返回的元组的第二个成员将是两次接收之间的时间(以毫秒为单位)。
编辑:
正如 rvirding 在他的评论中提到的,您还可以使用
now()
然后计算相应的时间差。查看 Erlang/OTP 发行版的$ERL_TOP/lib/stdlib/src/
目录中的supervisor.erl
。该模块的最后几行(函数addRestart
、inPeriod
和difference
)使用now()
计算重新启动的频率>。You can use
statistics(wall_clock)
each time you receive a message.The second member of the tuple it returns will be the time between the two receives (in milliseconds).
Edit:
As rvirding mentions in his comment, you can also use
now()
and then calculate the time difference accordingly. Take a look atsupervisor.erl
found in the$ERL_TOP/lib/stdlib/src/
directory of your Erlang/OTP distribution. The last lines of that module (functionsaddRestart
,inPeriod
anddifference
) calculate the frequency of restarts usingnow()
.