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