相信大家或多或少的听说过,少用点if-else吧?但是为什么要少用呢,有人说他会影响程序运行效率,但是这并不是他最大的罪状...
if-else 的罪状
if-else 作为三种最基本的程序结构之一,是我们从最开始学习编程时就接触的基本语句。但是到后面的阶段就不断听人说少用if-else。
如果询问原因的话,你得到的结果大概率是if-else导致程序运行效率下降。这次来扯扯为什么我们说要少用if-else。
-
导致程序运行效率下降(大部分时候可以忽略)
-
破坏程序结构,导致代码难以维护(核心原因 ⭐)
if 语句与运行效率
说起if语句导致程序运行效率下降,就不得不提到CPU的流水线结构,效率降低主要是由于多级流水线结构造成的。
现代的大部分CPU在执行代码的时候并不是读取一条指令然后执行一条执行的,而是使用了一种叫做流水线技术的方式,同时去执行多个操作。
流水线的影响
比如三级流水线就是指,CPU在执行一条指令时,同时会读取后面的指令,并对进行译码。(读取、译码、执行)
这样处理的优势很明显,使用流水线技术可以大大的提高执行效率。
但是它并不是所有时刻有效的,在程序中执行跳转代码时,CPU 会丢弃流水线现有的结果。
原因嘛,很简单!我都不执行后面的代码了,你提前读取有啥用