zoukankan      html  css  js  c++  java
  • if与switch的性能比较

    前言

    之前学习Java时,遇到了个问题,有点纠结。当ifswitch都实现相同的功能时,该改采用哪种方法实现?
    我并不懂得如何准确测量两者之间的性能区别,便在OlineJudge上找条该类型的题,来测试两者的性能结果
    好,废话不多说,看图

    下面是运行结果,前者为if的,后者为switch的

    switch的实现

    if的实现


    虽然两者的结果相比,占用内存相同,运行时间相差较大,
    但是OnlineJudge所用的数据是否相同、数据量多大及是否相同等等都不清楚。

    之后翻查了一些其他资料,switch的执行速度并不是一直都超过if,当数据量达到万级或者百万级时,if的执行速度反而会比switch更快

    但是试问一下,大多数方法的控制条件数量都不会超两位数吧?
    所以相比追求更快的运行速度,还不如选择合适的方法实现该功能。

    if在某些情景更适合表达逻辑,而switch也有它的优势。就我知道而言,switch的控制表达式依次与case后的值匹配。遇到相对应的值时,执行对应的执行体,没有break时继续往下执行。

    所以我们可以根据case标签的执行频率排列case标签的顺序进一步提高速度

  • 相关阅读:
    性能测试实战
    毕业以后读书报告(不定时更新)
    sqlalchemy.orm.exc.flusherror:错误解决
    Anaconda安装第三方模块
    关于BeanShell报错提示Error invoking bsh method
    jmeter函数和变量
    jmeter插件安装及使用
    doc
    doc
    doc
  • 原文地址:https://www.cnblogs.com/chenjunping/p/6215458.html
Copyright © 2011-2022 走看看