如手册中所述,http://www.erlang.org/erldoc?q=erlang:now
如果您不需要返回值唯一且单调递增,请改用 os:timestamp/0 以避免一些开销。
os:timestamp/0 应该比 erlang:now/0 快
但是我在我的 PC 上使用 timer:tc/3 进行了测试,对于 10000000 次调用,以微秒为单位花费的时间是:
erlang:现在 951000
操作系统:时间戳 1365000
为什么 erlang:now/0 比 os:timestamp/0 快?
我的操作系统:Windows 7 x64,erlang 版本:R16B01。
- - - - - - - - - 编辑 - - - - - - - - -
我并行编写了另一个测试代码(100 线程), os:timestamp/0 并行执行更好。这里是数据:
----- single thread ------
erlang:now 95000
os:timestamp 147000
----- multi thread ------
erlang:now 333000
os:timestamp 91000
所以,我认为“开销”是并行的。