在 erlang:now/0 手册上几乎没有混淆



返回元组 {兆秒、秒、微秒},它是经过的 假设自 1970 年 1 月 1 日 00:00 GMT(零小时)以来的时间 底层操作系统支持此功能。否则,其他一些点 时间是选择的。还可以保证后续对此的调用 BIF 返回不断增加的值。因此,返回值 from now() 可用于生成唯一的时间戳,如果是 在快速机器上的紧密循环中调用节点的时间可以 变得歪斜。

粗体句子是什么意思?我有点困惑,因为我的英语不是很好:)这是否意味着时间线以 45 度上升,还是意味着如果过于频繁地调用 erlang:now/0,节点的性能会下降?

谢谢。

构建

erlang:now/0,以便它始终返回一个递增的数字(即,MicroSecs将始终保证被 1 撞)。这很有用,因为它允许你将now()返回的值用作系统中的唯一 ID(至少在 VM 的一个会话期间)。

但是,这也意味着,如果您运行足够快的循环(即有时每个循环快于 1 微秒),您可能会"请求"比可用更多的微秒。因此,您实际上会将时间增加到其当前值之上!(这当然是一件非常糟糕的事情)

相关内容

最新更新