list comprehensions与list map性能对比

原创文章,转载请注明: 转载自庆亮的博客-webgame架构

本文链接地址: list comprehensions与list map性能对比

可以使用List comprehensions时不要 使用map或者filter,简单的性能测试对比一下:

第一组,maplist comprehensions对比,代码如下:

%%map方式

-module(map_test).

-export([start/1]).

start(N) ->

        statistics(runtime),

        erlang:statistics(wall_clock),

        lists:map(fun (X) -> X*X end, lists:seq(1N)),

        {_T1} = erlang:statistics(runtime),

        {_T2} = erlang:statistics(wall_clock),

        io:format("total times: ~p, load time: ~p (~p)", [NT1T2]).

%%list comprehensions方式

-module(list_comp_test).

-export([start/1]).

start(N) ->

        statistics(runtime),

        erlang:statistics(wall_clock),

        [X*X || X <- lists:seq(1N)],

        {_T1} = erlang:statistics(runtime),

        {_T2} = erlang:statistics(wall_clock),

        io:format("total times: ~p, load time: ~p (~p)", [NT1T2]).

测试N1000000时结果对比:

结果取得是平均值,可以很明显的看出comprehension方式性能要高。

关于filter,则类似。不再作测试。

Leave a comment

0 Comments.

Leave a Reply

You must be logged in to post a comment.