• if与switch的性能比较


    前言

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

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

    switch的实现

    if的实现


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

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

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

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

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

  • 相关阅读:
    python 函数(二)
    python 函数(一)
    python 文件操作
    python标准数据类型 Bytes
    购物车代码
    关于python数据类型的一些举例
    栈的应用实例
    python 数据类型
    python相关的编码,运算
    Oracle篇 之 查询行及概念
  • 原文地址:https://www.cnblogs.com/chenjunping/p/6215458.html
Copyright © 2020-2023  润新知