【Erl代码片段】更快的proplists:get_value/3
在cowboy的cowboy_protocol.erl 文件中看到如这样一下函数:
%% Faster alternative to proplists:get_value/3.
get_value(Key, Opts, Default) ->
case lists:keyfind(Key, 1, Opts) of
{_, Value} -> Value;
_ -> Default
end.
做了一下测试, 考虑到proplist一般都不长, 用一个10个元素的列表进行测试,
结果这个函数比 proplists:get_value/3
快5倍, 对于更长的列表差别更大.
bench:get_value/3
Single Process: 13035909 call per sec, 16777216 times in 1287 ms …