测试代码如下:
1 add_str1(N) -> 2 lists:foreach(fun(_)->"get_"++"aaa"++"bbb"++"ccc") end,lists:seq(1,N)). 3 add_str2(N) -> 4 lists:foreach(fun(_)->lists:concat(["get_","aaa","bbb","ccc"]) end,lists:seq(1,N)).
测试结果:

执行时间相差接近10倍,查看lists:concat/1的源码可以看出,该函数底层使用的是++,但是在++之前做了一系列的检测和转化,时间应该是浪费在这些地方的。
浙公网安备 33010602011771号