【erlang】==和=:=效率

2020-08-14 19:09:37

週五沒事瞎吹,討論==和=:=區別,看他們討論的熱火朝天,我二話不說直接開擼測試一下。

-module(t).
-export([test/0,timestamp/0]).

test()->
    [ guess(fun a/1 ),guess(fun b/1 ) ].

guess(F)->
    Start = timestamp(),
    F(50000000),
    timestamp() - Start.

a(0) -> 0;
a(N) when 1 == 1 -> a(N-1).

b(0) -> 0;
b(N) when 1 =:= 1 -> b(N-1).

timestamp() ->
    {M, S, Micr} = os:timestamp(),
    1000000000000 * M + S * 10000000 + Micr.

看結果得知大多數情況下用=:=要快。