Страницы

Поиск по вопросам

суббота, 28 декабря 2019 г.

Что быстрее при использовании много if, if-else или switch

#java #android


В проекте есть много ситуаций где нужно проверить выбранное действие.

Что оптимальнее использовать:

Много If

if (...){}
if (...){}
if (...){}


If-else

if (...){}
else if (...){}
else if (...){}
else if (...){}
...


Switch

switch(...){
    case ONE:
        break;
    case TWO:
        break;
    case THREE:
        break;
    ...
       ...
    case N:
        break;
}

    


Ответы

Ответ 1



Оператор switch, как правило (то есть когда нетривиальный, в тривиальных случаях JIT его разберет на if/else) - транслируется в байткод tableswitch или lookupswitch Производительность tableswitch O(1), а lookupswith O(log N) (то есть сравним с if/else/if) P.S. перечень байткод инструкций

Ответ 2



Подобного рода оптимизации бесполезны, так как JIT-компилятор всё равно делает их лучше вас. Поэтому оптимальнее использовать то, что делает код чище и проще для сопровождения.

Комментариев нет:

Отправить комментарий