`
轮回记忆
  • 浏览: 10462 次
  • 性别: 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

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

    Halcon模板匹配:单模板和多模板匹配

    1. **多模板集合**:与单模板匹配不同,这里需要一组模板图像。这些模板可以使用`create_shape_model`或`read_shape_model`函数创建并存储在一个模型集中。 2. **匹配过程**:使用`match_shape_model`算子,我们...

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

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

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

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

    节假日判断函数

    "节假日判断函数" 节假日判断函数是一种计算指定日期内哪些为工作日、节假日的函数。该函数主要用于计算两个日期相差的工作天数,并且可以根据指定的节假日表来判断哪些日期是节假日。 知识点1:工作日计算函数 ...

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

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

    基于模版匹配的车牌识别方法及判别函数

    具体而言,模板匹配通常涉及到将目标图像与一系列预设的模板图像进行比较,从而找到最佳匹配。 在本研究中,采用了基于模版匹配的方法来识别车牌上的汉字。首先,将图像转换为二值图像,即只有黑白两种颜色的图像。...

    一个包括超多函数的Delphi函数单元 MyUnit.pas文件代码.rar

    与大家收集分享一个Delphi函数单元 ,文件名称为:MyUnit.pas,里面包括了超多的自定义函数,是自己在开发过程中不断丰富完善的一个函数库,文件中包括了文件压缩函数、字符串转换函数、字符过滤函数、字符串截取...

    35个标准测试函数.rar_matlab标准测试_matlab测试函数_标准测试函数_测试函数 matlab_算法函数测试

    5. 单元测试与集成测试:单元测试专注于单个函数,而集成测试则检查多个组件协同工作时的行为。 在压缩包中的“35个标准测试函数及相关文献”中,除了实际的测试函数代码外,可能还包括了关于如何使用这些函数的...

    WFG 多目标测试函数测试集

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

    java版的AC多模式匹配算法

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

    CEC2022单目标优化测试函数源码

    这些测试函数是评估和比较不同优化算法性能的重要工具,它们模拟了实际工程和科学问题中的困难优化挑战。本文将深入探讨CEC2022单目标优化测试函数的源码及其相关知识点。 首先,"2022-SO-BO-main"这个文件名可能指...

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

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

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

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

    VLOOKUP函数进行精确匹配的深入指南

    在许多情况下,我们需要确保VLOOKUP函数执行的是精确匹配而不是近似匹配。本文将详细介绍如何使用VLOOKUP进行精确匹配,包括函数的语法、使用技巧和常见的错误处理。 VLOOKUP函数是Excel中进行数据查找的得力助手。...

    C# 的金额判断函数,可以判断千分位

    C# 的金额判断函数,可以判断千分位 C# 的金额判断函数,可以判断千分位 C# 的金额判断函数,可以判断千分位 C# 的金额判断函数,可以判断千分位 C# 的金额判断函数,可以判断千分位 C# 的金额判断函数,可以判断...

    js 函数性能比较方法

    `js函数性能比较方法`这个话题关注的就是如何衡量和比较不同函数实现的效率。本文将深入探讨如何使用提供的`proferencesCompare`函数来比较JavaScript函数的性能,并提供一些关于优化函数性能的基本原则。 `...

    优化标准测试函数及MATLAB代码

    在优化领域,标准测试函数是评估和比较不同优化算法性能的重要工具。这些函数通常具有已知的全局最优解,或者具备特定的复杂性,如多模态、非线性、约束等特性,使得它们能够全面地检验优化算法的寻优能力和稳健性。...

    模板匹配算法

    在OpenCV中,模板匹配主要通过`matchTemplate()`函数实现,该函数可以进行像素级别的比较,找到模板图像在搜索图像中最相似的区域。 模板匹配的基本步骤如下: 1. **预处理**:首先,我们需要加载搜索图像和模板...

Global site tag (gtag.js) - Google Analytics