Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
Есть такая ситуация, что необходима проверка на значение перменной. Что будет быстрее работать - 50 конструкций if else или switch? Подозреваю, что switch. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 19:14 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
switch(), обсуждали как-то и асм смотрели. Топик не нашел, но суть в том что switch() преобразуется в goto arr[value] чему есть соответствующая ASM-команда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2016, 19:40 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
Dima Tswitch() преобразуется в goto arr[value]Это если значения в case-ах идут последовательно: Код: plaintext 1. 2. 3. 4. 5. 6. Тут да, оптимизирующий компилятор скорее всего сгенерирует jump table (массив указателей на код). А вот если значения в case-ах идут как попало: Код: plaintext 1. 2. 3. 4. 5. 6. то тут уже вряд ли будет jump table, скорее всего компилятор «мысленно» преобразует этот switch к чему-нибудь типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Но в любом случае, да, switch даёт больше возможностей для оптимизации, чем цепочка if-else. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 00:02 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
Пётр Седовтут уже вряд ли будет jump table Во-первых, из значения вычтется нижняя граница. Потом у компилятора будет выбор: делать пачку сравнений или всё-таки массив адресов, большинство значений в котором будет занимать ссылка на секцию defaut. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 00:09 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
ukugyul552465Есть такая ситуация, что необходима проверка на значение перменной. Что будет быстрее работать - 50 конструкций if else или switch? Подозреваю, что switch. Это неважно. Скорее всего выбрана неверная реализация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 00:59 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
ukugyul552465, Всё равно. Как то, так и это компиляторы могут превращать в бинарный поиск по вариантам. (на сколько я знаю). switch при большом кол-ве вариантов просто логически предпочтительнее. Читать удобнее. Это конечно если там сравнение с константами только. Да, и напоминаю, что теперь можно в switch использовать строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 12:14 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
MasterZivДа, и напоминаю, что теперь можно в switch использовать строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 16:41 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
Планируется switch со строками(~50 штук, значения в них абсолютно не схожие). Но в общем да, switch и удобнее будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 17:03 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
Я бы просто HashMap использовал. Подозреваю, что если компилятор умный, он сам switch со строками сделает через hash. Но только нафига? Пары строчек (ну пусть десятка) жалко, что бы точно знать, как оно гарантированно будет выполняться IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 19:42 |
|
||
|
Что быстрее: if else или switch
|
|||
|---|---|---|---|
|
#18+
ukugyul552465Планируется switch со строками(~50 штук, значения в них абсолютно не схожие). Но в общем да, switch и удобнее будет.As i said before ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2016, 01:24 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39331125&tid=2018402]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 162ms |

| 0 / 0 |
