Показать сообщение отдельно
Старый 09.01.2014, 23:12
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 4  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
По скорости разницы нет, а значит, если и использовать, то не для расчётов.
Теоретически сдвиг работает быстрее, т.к. требует меньше тактов процессора, чем честное деление
Практически, кстати, тоже на флеше может дать прирост, хотя может и не дать, потому что:
- не будет заметен на фоне тормознутости других операций
- выражение / 2 может быть преобразовано компилятором в сдвиг (хотя mxmlc туповат, сомневаюсь)
- байткод, соответствующий / 2 может быть преобразован рантайм-компилятором в сдвиг
- часто скорость зависит больше от времени доступа к данным (попадут ли в кеш процессора), чем от количества тактов на собственно обработку

Где используются, если не для производительности:
- получение значения цвета по составляющим RGB
- самописная сериализация/десериализация данных (наверняка в коде ProtoBuf для as3 эти операторы найдете) - просто ими запихивают несколько значений в один байт (BiteArray биты то не принимает) или заталкивают 32-битное число в 16 бит, если оно небольшое (например в AMF 3).
- в алгоритмах чтения/записи других бинарных форматов (png, например) тоже наверняка найдёте