Быстрый Доступ К 2D-Массиву Во Flash

Задача простая и типовая.

Имеется большой двумерный массив.

И мы хотим работать с ним максимально эффективно.

В моем случае меня интересовал массив чисел (байтов).

Ну.

Самое простое, что приходит на ум, — это использовать стандартный тип двумерного массива и обращаться к элементам в виде a[x][y].

Но насколько это эффективно? Возможно, было бы быстрее работать с одномерным массивом и обращаться к элементам как [x + y*size_x]? Чтобы расставить все точки над «и», я написал тест, проверяющий скорость чтения и записи различных вариантов массива.

На ум пришли следующие варианты:

  • 2-мерный нетипизированный массив (массив)
  • Одномерный нетипизированный массив (Array)
  • Двумерный типизированный массив (Vector. > )
  • Одномерный типизированный массив (Vector. )
  • Использование BitmapData в качестве хранилища и setPixel/getPixel для доступа.

  • Одномерный массив байтов (ByteArray)
  • Ну, и наконец, извращение.

    Доступ к ByteArray, ускоренный за счет быстрого доступа к памяти технологии Alchemy.

Итак, я написал небольшой тест для сравнения скорости выполнения кода.

Тест имитировал чтение и запись всех элементов массива размером 1500x1500 точек.

Каждую операцию выполняли 5 раз и брали среднее время.

Также, естественно, динамические массивы создавались заранее и заполнялись элементами (т.е.

при тестовых измерениях новые элементы не добавлялись).

Итак, что случилось:

Быстрый доступ к 2D-массиву во Flash

Диаграмма:

Быстрый доступ к 2D-массиву во Flash

Выводы очевидны.

Исходный код размещен здесь: Wonderfl.net/c/d58d Теги: #flash #массив #вектор #массив #Adobe Flash

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.