Всегда ли целые числа быстрее, чем числа / числа с плавающей точкой в ​​AS3? - PullRequest
8 голосов
/ 02 марта 2012

Известно, что Flash ведет себя очень непредсказуемым образом, когда дело доходит до манипулирования данными.Мне любопытно, что если есть какие-либо преимущества в производительности / памяти, использование чисел вместо целых чисел помимо значений, требующих точности.Я слышал, что некоторые основные операции во Flash могут преобразовывать несколько раз между двумя типами для разрешения выражения.Я также слышал, что во время выполнения Flash во время выполнения фактически отображает целые числа с неточными числами / числами с плавающей запятой.Это правда?

Ответы [ 2 ]

14 голосов
/ 02 марта 2012

Flash Runtime действительно темное место.

  • Как вы упомянули, AVM2 конвертирует большие числа в число .
  • Целые числа являются действительными значениями.
  • И еще много вещей о целых .
  • Uints, которые раньше были медленными, использовались в цикле НО СЕЙЧАС ОНИ НЕ (результаты в статье кажутся комбинацией странной генерации байт-кода и JIT-оптимизаций).* Числа занимают больше места в памяти, но это nothing по сравнению даже с одним файлом JPEG.
  • Логически удобнее использовать uints в циклах.
  • Числа являются значениями с плавающей запятойВы должны быть осторожны, сравнивая их.

Джексон Данстан довольно неплохо тестирует производительность различных языковых конструкций AS3.Конечно, всегда полезно проверить результаты самостоятельно.Из серии о производительности 10,2 можно увидеть, что с каждой новой версией Flash Player они что-то оптимизируют, но другие вещи могут становиться медленнее: 1 2 3 .

PS Этот ответ может очень быстро устареть, и через пару лет его можно будет процитировать, что, конечно, будет неверным.

0 голосов
/ 02 марта 2012

Вы не получите никакого реального выигрыша в производительности с int над Number.Так что, если вы не используете переменную для таких вещей, как индексы цикла или вещи, которые требуют точных приращений, с Number в порядкеНа самом деле, Number может быть NaN, если вы получите неверный результат, что является хорошим преимуществом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...