Erlang中应用了大量的匹配语法,那么到底是多函数的when匹配性能好还是单个函数里的case of性能更加出众,马上做个比较:
程序echo1:
C代码 收藏代码
-module(echo1).
-export([start/1]).
start(N) ->
statistics(runtime),
run(N,1),
{_, T} = statistics(runtime),
io:format("total running time: ~p ms ~n", [T]).
run(N,S) ->
case N==S of
true -> true;
_ ->
case S rem 2 of
true -> true;
_ ->ok
end,
run(N,S+1)
end.
程序echo2:
C代码 收藏代码
-module(echo2).
-export([start/1]).
start(N) ->
statistics(runtime),
run(N,1),
{_, T} = statistics(runtime),
io:format("total running time: ~p ms ~n", [T]).
run(N,N) -> true;
run(N,S) when S rem 2 == 0 -> true,run(N,S+1);
run(N,S) -> run(N,S+1).
运行结果:
> echo1:start(100000000).
total running time: 5891 ms
ok
> echo2:start(100000000).
total running time: 4344 ms
ok
很明显地看出方案2的性能比方案1高出30%左右,看来方案2不但代码美观,而且性能还相对出众.
分享到:
相关推荐
信号与系统的冲激函数匹配法,希望可以帮到正在学习这门课程的学生
图片匹配自定义函数.xlsm
微分方程种解法含冲激函数匹配法PPT课件.pptx
oracle匹配度函数[自己写的] 比如: a 匹配 ab 匹配度 100% ab 匹配 a 匹配度 50% 社报 匹配 社会报销 匹配度 50%
正则函数练习,初学者可以看一下这个练习题,匹配用户,密码,路由等等
信号与系统微分方程3种解法——含冲激函数匹配法
数据库课程的无损分解与函数依赖的判断。对学数据库有帮助。
VBA图片匹配自定义函数.xlsm
线性调频时域、频域波形,匹配滤波、波束形成、模糊函数等一系列基础代码
一个简单的校验匹配结果的Matlab函数。
对内联函数与普通函数的一些比较与分析.doc
javascript常用判断函数大全 javascript常用判断函数 javascript常用判断函数
怎样判断三角函数的周期,适用于学习信号与系统。
成员函数指针与高性能的C++委托着重描述C++中如何实现其他面向对象语言如C#,JAVE中的委托功能
与大家收集分享一个Delphi函数单元 ,文件名称为:MyUnit.pas,里面包括了超多的自定义函数,是自己在开发过程中不断丰富完善的一个函数库,文件中包括了文件压缩函数、字符串转换函数、字符过滤函数、字符串截取...
过了这么久才回来写这篇算法的理解,有点抱歉,实在有很多事。 现在就进入正题吧,这个是一个多目标函数优化算法。...这就将多目标函数转化为单目标函数了。 还有一种方法,是真正的多目标函数优化算法。
EXCEL获取多匹配单元格值 & VLOOKUP多条件查找
常见信号模糊函数仿真图像代码、信号匹配滤波仿真
asp常用的安全过滤判断函数asp常用的安全过滤判断函数
AC多模式匹配算法 特点:应用有限自动机巧妙地将字符比较转化为了状态转移。此算法有两个特点:一是扫描文本时完全不需要回溯,二是时间复杂度为O(n)与关键字的数目和长度无关,但所需时间和文本长度以及所有关键字...