Насколько порядок меток регистра влияет на эффективность операторов switch?
Рассмотреть возможность:
if (condition1)
{
// Code block 1
}
else
{
// Code block 2
}
Если я знаю чтоcondition1
будетtrue
большую часть времени, тогда я должен кодировать логику как написано, вместо:
if (!condition1)
{
// Code block 2
}
else
{
// Code block 1
}
так как я буду избегать наказанияjump
ко второму блоку кода (примечание: у меня ограниченные знания ассемблера). Продолжает ли эта идеяswitch
заявления иcase
этикетки?
switch (myCaseValue)
{
case Case1:
// Code block 1
break;
case Case2:
// Code block 2
break;
// etc.
}
Если я знаю, что один из случаев будет происходить чаще, могу ли я изменить порядок следованияcase
ярлыки, чтобы он был более эффективным? Нужно ли мне? В моем коде я упорядочил метки кейсов в алфавитном порядке для удобства чтения кода, не задумываясь об этом. Это микрооптимизация?