Jak bardzo kolejność etykiet spraw wpływa na wydajność instrukcji przełączników?
Rozważać:
if (condition1)
{
// Code block 1
}
else
{
// Code block 2
}
Jeśli to wiemcondition1
będzietrue
przez większość czasu powinienem kodować logikę tak, jak napisano, zamiast:
if (!condition1)
{
// Code block 2
}
else
{
// Code block 1
}
ponieważ uniknę karyjump
do drugiego bloku kodu (uwaga: mam ograniczoną znajomość języka asemblera). Czy ten pomysł niesie dalejswitch
oświadczenia icase
etykiety?
switch (myCaseValue)
{
case Case1:
// Code block 1
break;
case Case2:
// Code block 2
break;
// etc.
}
Jeśli wiem, że jeden z przypadków będzie się zdarzał częściej, czy mogę zmienić kolejnośćcase
etykiety, dzięki czemu jest bardziej wydajny? Czy powinienem? W moim kodzie zamawiam etykiety przypadków alfabetycznie, aby zapewnić czytelność kodu bez zastanawiania się nad tym. Czy to mikro-optymalizacja?