というわけで、実際に以下の二つのコードで検証してみました。
| |
| A(Long型)の値 | 速い方 | 遅い方 | 速度倍率 |
| 0 | If...ElseIf... | Select Case... | 1.56 |
| 1 | If...ElseIf... | Select Case... | 1.42 |
| 2 | If...ElseIf... | Select Case... | 1.32 |
| 3 | If...ElseIf... | Select Case... | 1.26 |
| 4 | If...ElseIf... | Select Case... | 1.20 |
| 5 | If...ElseIf... | Select Case... | 1.20 |
| 6 | If...ElseIf... | Select Case... | 1.15 |
| 7 | If...ElseIf... | Select Case... | 1.15 |
| 8 | If...ElseIf... | Select Case... | 1.13 |
| 9 | If...ElseIf... | Select Case... | 1.13 |
条件次第ではSelectの方が速くなることもあるかもしれませんが(未確認)、基本的にはIfの方が高速と見て差し支えないようです。
ところで、この表を見ているともっと興味深いことがわかります。
SelectからIfに移行する際、早い段階で条件が当てはまるようにすればさらに効果が高まるということです。
もちろん、移行する前からよく当てはまる条件を前に持ってきているのが一番なのですが。