您的位置:首页 > 产品设计 > UI/UE

关于proplists:get_value/2 与lists:keyfind/3 的效率比较

2015-05-29 17:00 260 查看
关于proplists:get_value/2 与lists:keyfind/2 的效率 早有比较,已出结论,lists:keyfind/2 的效率要好很多,好些人都是直接用或者做过它们之间的比较测试,测试下就一目了然了,直接上代码:

-module(a).

-compile(export_all).

test() ->
Y = "a",
List = [{X,Y} || X<- lists:seq(1,10)],
{Timer1,_} = timer:tc(lists,map,[fun(X) -> proplists:get_value(X,List)end, lists:seq(1,100000)]),
io:format("proplists.......~p~n",[Timer1]),
{Timer2,_} = timer:tc(lists,map,[fun(X) -> lists:keyfind(1,X,List)end, lists:seq(1,100000)]),
io:format("lists.......~p~n",[Timer2]),
ok.




结果很清楚,分别执行10万次,time分别为60000和10000微秒,而且调用次数越多,差异越明显。很明显lists:keyfind/2 的效率要好很多。

附个老外较早之前测试的链接:http://www.ostinelli.net/erlang-listskeyfind-or-proplistsget_value
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: