今天无聊写了一个列表拼接两种方式的对比,主要是对比一下用“++”和“|”拼接列表的速度,书上说,“++”拼接列表是极为低效的操作。这里我用代码实现了一下,分别用两种方法生成N个零的列表:
%%列表拼接对比 listsTimeCon(N)-> {TimeOne,_} = timer:tc(test,listsCon1,[N]), {TimeTwo,_} = timer:tc(test,listsCon2,[N]), case TimeOne > TimeTwo of true -> io:format("'++',~p~n",[TimeOne - TimeTwo]); _ -> io:format("'[|]',~p~n",[TimeTwo - TimeOne]) end. listsCon1(0)-> []; listsCon1(N)-> [0]++listsCon1(N-1). listsCon2(0)-> []; listsCon2(N)-> [0|listsCon2(N-1)].
编译并运行后结果是,当列表长度较短的时候,“|”的速度比较快,但是当列表长度较长的时候,“++”的拼接速度会比较快,我尝试测试出临界点的时候,发现每次测试的结果也有出入,例如当N等于100000。出现这个问题可能因为内存分配问题,或者是timer:tc/3的使用方式有错,请大神们提点一下小弟,谢谢!
相关推荐
用两种不同的方法产生服从erlang分布的随机数
erlang入门电子书 erlang编程 Introducing Erlang,作者Simon.St.Laurent
个人学习Erlang对于Erlang处理数据的各种方式的总结,讲述编程语言Erlang的ets,dets,mnesia,mysql,dict,和进程字典的用法,希望能帮助读者在这个总结里学到一些东西.
《Erlang and OTP in Action》、《Erlang程序设计》。
ErlangB和ErlangC计算工具(exe可执行文件+excel两个) ErlangB和ErlangC计算工具(exe可执行文件+excel两个)
erlang 安装包
NULL 博文链接:https://langzhe.iteye.com/blog/1123218
Erlang及其应用Erlang及其应用Erlang及其应用
Erlang在官网下载页面一直出现无法请求的情况,现在将下载下来的32位和64位的安装包分享
erlang otp25 win安装包
erlang25.0 windows版本
erl_nif 扩展erlang的另外一种方法
erlang22最新下载包 erlang22.1.tar.gz erlang22最新下载包 erlang22最新下载包
erlang 中文基础教程erlang 中文基础教程
Erlang 编程语言是一种功能强大且灵活的编程语言,它提供了一个交互式的 shell 环境,允许用户在其中编写和运行代码。 Erlang Shell 是一个命令行交互环境,类似于 UNIX 和 LINUX 系统的命令行模式。 1. Erlang ...
进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。 使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。
java php python erlang 千万级内存数据性能比较,
erlang安装包
学习erlang的时候尝试编写的小例子,使用post方式发送json数据来进行http请求,希望能帮到大家~
Erlang和RabbitMQ安装包