Quanto a ordem dos rótulos de caso afeta a eficiência das instruções switch?
Considerar:
if (condition1)
{
// Code block 1
}
else
{
// Code block 2
}
Se eu sei dissocondition1
serátrue
na maioria das vezes, eu deveria codificar a lógica como escrita, em vez de:
if (!condition1)
{
// Code block 2
}
else
{
// Code block 1
}
desde que eu vou evitar a penalidade dojump
para o segundo bloco de código (nota: tenho conhecimento limitado da linguagem de montagem). Essa idéia leva adiante paraswitch
declarações ecase
rótulos?
switch (myCaseValue)
{
case Case1:
// Code block 1
break;
case Case2:
// Code block 2
break;
// etc.
}
Se eu souber que um dos casos acontecerá com mais frequência, posso reorganizar a ordem docase
rótulos para que seja mais eficiente? Eu devo? No meu código eu tenho ordenado alfabeticamente os rótulos de caso para legibilidade de código sem realmente pensar sobre isso. Isso é micro-otimização?