Jump Table

dev

Por qué un switch es más rápido que su homólogo if-then-else

En este artículo pretendo explicar el motivo por el cual un switch es mucho más rápido que su homólogo en secuencias if-then-else, para ello analizaremos la implementación del switch.

Introducción

El switch se basa en una implementación muy eficiente llamada en inglés jump table o tabla de saltos. Esta tabla es un array, donde la entrada i es la dirección de un segmento de código que implementa la acción que el switch debería ejecutar cuando la condición es igual a i. El código realiza una referencia al array dentro de la tabla de saltos usando el índice del switch y determinar así el destino para una instrucción de salto (instrucción jmp en ensamblador).