`
轮回记忆
  • 浏览: 10561 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

多函数匹配与单函数判断的性能比较(转载)

 
阅读更多
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不但代码美观,而且性能还相对出众.
分享到:
评论

相关推荐

    微分方程种解法含冲激函数匹配法PPT课件.pptx

    微分方程种解法含冲激函数匹配法 微分方程种解法是解决微分方程的方法,包括经典法、冲激函数匹配法等。以下是微分方程种解法的知识点总结: 1. 经典法:经典法是解决微分方程的基本方法,包括求特征根、写出齐次...

    冲激函数匹配法.pdf

    信号与系统的冲激函数匹配法,希望可以帮到正在学习这门课程的学生

    对内联函数与普通函数的一些比较与分析.doc

    内联函数与普通函数是C++编程语言中用于定义可重复执行代码段的两种主要机制,它们在实现方式、性能影响以及适用场景上存在着重要的差异。在追求程序效率和代码优化的过程中,正确选择使用内联函数还是普通函数对于...

    图片匹配自定义函数.xlsm

    图片匹配自定义函数.xlsm

    oracle匹配度函数[自己写的]

    oracle匹配度函数[自己写的] 比如: a 匹配 ab 匹配度 100% ab 匹配 a 匹配度 50% 社报 匹配 社会报销 匹配度 50%

    模糊函数仿真.zip_信号匹配_信号模糊函数_匹配滤波_模糊函数_模糊函数仿真

    在“模糊函数仿真”和“匹配滤波仿真”中,我们通常会编写代码来模拟这些过程,以便在不同的条件和参数下测试系统的性能。例如,我们可以改变模糊函数的隶属度函数形状,观察它如何影响系统的决策输出;对于匹配滤波...

    Oracle字符相似度函数

    在SQL查询中,我们可以直接使用这些函数来比较不同字符串间的相似程度,从而进行数据匹配、模糊搜索等操作。 Oracle提供了多个字符相似度函数,其中最常用的包括`SIMILARITY()`和`UTL_MATCH`包中的几个函数,如`...

    VBA图片匹配自定义函数.xlsm

    VBA图片匹配自定义函数.xlsm

    影像匹配相关函数算法VC++源代码

    相关函数算法是一种基于像素相似度的匹配方法,它通过比较图像之间的局部特征来确定对应点。下面将详细讨论这个算法及其在图像处理中的应用。 首先,影像匹配的目标是找出两幅或多幅图像之间的相同或相似的区域,这...

    ambiguity_function.rar_图钉函数_图钉模糊_模糊函数_模糊函数 matlab_雷达模糊函数

    在雷达信号处理领域,模糊函数(Ambiguity Function,简称AF)是一个至关重要的概念,它描述了雷达系统接收到的回波信号与发射信号之间的关系。"ambiguity_function.rar"压缩包文件提供了关于图钉函数(Pincushion ...

    性能测试_loadrunner脚本录制的常用函数

    性能测试_Loadrunner脚本录制的常用函数 性能测试是软件测试的一种类型,旨在评估被测系统的性能指标,如响应时间、吞吐量、资源使用率等。在性能测试中, Loadrunner 是一种常用的性能测试工具,它可以模拟大量...

    MYSQL数据库校验身份证函数

    #### 二、函数定义与参数 ```sql CREATE DEFINER=`root`@`%` FUNCTION `CHECKIDCARD`(p_idcard VARCHAR(32)) RETURNS VARCHAR(32) CHARSET utf8 ``` 该函数定义为: - 函数名称:`CHECKIDCARD` - 参数:`p_idcard`...

    多目标优化问题经典测试函数

    在多目标优化领域,有一些经典的测试函数被广泛使用来验证和评估优化算法的性能。这些函数通常是设计得具有一定的挑战性,以便模拟真实世界中的复杂问题。MATLAB作为一款强大的数值计算软件,是进行多目标优化研究和...

    矢量匹配法_矢量匹配法_有理式_矢量匹配_矢量拟合法_矢量拟合

    矢量匹配法的核心在于找到最佳的有理函数参数,使得该函数与实际数据之间的误差最小。这通常通过优化算法实现,例如最小二乘法或者梯度下降法,以最小化误差函数(通常是均方误差)为目标,迭代调整传递函数的参数。...

    labview调用halcon匹配详解

    Halcon则是德国MVTec公司推出的一款知名的机器视觉软件,它提供了丰富的图像处理函数,如形状匹配、模板匹配、光学字符识别等。在工业自动化领域,将LabVIEW与Halcon结合使用,可以构建高效且灵活的视觉系统。 本文...

    WFG 多目标测试函数测试集

    WFG多目标测试函数测试集是评估和比较多目标优化算法性能的关键工具,其在Java环境中的实现提供了便利的接口,使研究人员和工程师能够方便地测试和优化他们的算法。WFG函数的多样性和可扩展性确保了测试的全面性和...

    java版的AC多模式匹配算法

    AC多模式匹配算法 特点:应用有限自动机巧妙地将字符比较转化为了状态转移。此算法有两个特点:一是扫描文本时完全不需要回溯,二是时间复杂度为O(n)与关键字的数目和长度无关,但所需时间和文本长度以及所有关键字...

    C++深入学习之彻底理清重载函数匹配

    为便于说明,将函数匹配分为三个阶段,确定候选函数,确定可行函数,确定最佳匹配函数。 确定候选函数 候选函数也就是和被调用的函数同名,并且其声明在调用点可见。举个简单的例子。 假设有两个文件,1.cpp和2....

    C语言qsort函数算法性能测试

    qsort函数的算法性能强劲,主要原因是它采用了基于比较的排序算法,即每次比较两个元素,选择较小的元素作为下一个元素。这种算法可以在O(nlg(n))时间内完成排序操作。 在实际应用中,qsort函数广泛应用于各种排序...

    XYZ匹配函数.xlsx

    XYZ匹配函数.xlsx

Global site tag (gtag.js) - Google Analytics