2014-10-01 56 views

回答

7

最簡單的工具是使用Erlang的:timer模塊,其中一個是tc變體。它以微秒爲單位返回執行時間,並將函數的結果作爲元組返回。到時候匿名函數,你可以做

{time, res} = :timer.tc fn -> :timer.sleep(1000) end 
# {1000575, :ok} 

{time, res} = :timer.tc(fn(ms) -> :timer.sleep(ms) end, [1000]) 
# {1001283, :ok} 

時間模塊的功能,你可以做

defmodule Sleepy do 
    def sleep(ms) do 
    :timer.sleep(ms) 
    end 
end 

{time, res} = :timer.tc(&Sleepy.sleep/1, [1000]) 
# {1001106, :ok} 

{time, res} = :timer.tc(Sleepy, :sleep, [1000]) 
# {1000352, :ok} 

Timex是另一種選擇,這對於測量時間,除其他事項外一個友好的API,但如果所有你需要的是時間,:timer綽綽有餘的一些包裝代碼。

相關問題