Рассмотрим:
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
, чтобы он стал более эффективным? Нужно ли мне? В моем коде я заказывал ярлыки в алфавитном порядке для чтения кода, не задумываясь об этом. Является ли эта микро-оптимизация?