【erlang】==和=:=效率

周五没事瞎吹,讨论==和=:=区别,看他们讨论的热火朝天,我二话不说直接开撸测试一下。

【erlang】==和=:=效率_第1张图片

-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.

看结果得知大多数情况下用=:=要快。

你可能感兴趣的:(erlang)