マニュアルで述べたように、http://www.erlang.org/erldoc?q=erlang:now
戻り値を一意で単調に増加させる必要がない場合は、代わりに os:timestamp/0 を使用してオーバーヘッドを回避してください。
os:timestamp/0 は erlang:now/0 よりも高速である必要があります
しかし、私の PC で timer:tc/3 を使ってテストしたところ、10000000 回の呼び出しの場合、マイクロ秒で費やされた時間は
erlang:現在 951000
os:timestamp 1365000
erlang:now/0 が os:timestamp/0 より速いのはなぜですか?
私の OS: Windows 7 x64、erlang バージョン: R16B01。
- - - - - - - - - 編集 - - - - - - - - -
別のテスト コードを並行して書きました (100 スレッド)。ここにデータがあります:
----- single thread ------
erlang:now 95000
os:timestamp 147000
----- multi thread ------
erlang:now 333000
os:timestamp 91000
だから、「オーバーヘッド」は並列用だと思います。