返回元组{MegaSecs,Secs,MicroSecs},它是自格林威治标准时间1970年1月1日00:00(零小时)起经过的时间,假设底层操作系统支持此操作.否则,选择其他一些时间点.还保证随后对此BIF的调用会不断返回增加的值.因此,now()的返回值可用于生成唯一的时间戳,如果在快速机器上的紧密循环中调用它,则节点的时间可能会变得偏斜.
粗体句意味着什么?我有点困惑,因为我的英语不是很好:)是否意味着时间线以45度上升或者是否意味着如果erlang:now/0经常调用节点的性能会降低?
非常感谢你.
erlang:now/0构建,以便它总是返回一个递增的数字(也就是说,MicroSecs总是保证会被1加点).这很有用,因为它允许您now()在系统中使用返回值作为唯一ID(至少在VM的一个会话期间).
但是,这也意味着如果你运行足够快的循环(即,每个循环有时快于1微秒),你可能会"请求"超过可用的微秒.所以你实际上会增加它当前值的时间!(当然,这是一件非常糟糕的事情)