Сколько данных слишком много для массива? - PullRequest
0 голосов
/ 25 января 2011

У меня есть гибкое веб-приложение, которое извлекает некоторые имена и адреса из базы данных.Проект работает нормально, но я бы хотел сделать это быстрее.Вместо того, чтобы обращаться к базе данных для каждого запроса имени, я мог бы предварительно загрузить все имена в массив и отфильтровать массив, когда пользователь делает запрос.Прежде чем идти по этому пути, я хотел проверить, возможно ли вообще иметь приложение с 50 000 или 1 миллионом элементов в массиве?Какое ограничение б / ф замедляет приложение?(Я ожидаю, что в моем приложении будет много работы с тем, что еще происходит, но ради этого предположим, что приложение ТОЛЬКО состоит из этого огромного массива).

Ответы [ 3 ]

2 голосов
/ 25 января 2011

Если вы загружаете большие объемы данных (хотя вы не уверены, используете ли вы списки), вы можете прочитать статью Джеймса Уордса об использовании AsyncListView с подкачкой для захвата данных в чанкахпо мере необходимости.Собираюсь попробовать и реализовать что-то подобное в ближайшее время.Его исполняемый пример использует 100 000 строк с подкачкой 100 (работает с вызовами типа HttpService / AMF): http://www.jamesward.com/2010/10/11/data-paging-in-flex-4/

2 голосов
/ 25 января 2011

Поиск в большом массиве может быть медленнее, чем необходимо, особенно если вы говорите о 1 миллионе записей.

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

Для прямого ответа на ваш вопрос, хотя чистая обработка в AS3 массива элементов 50000 должна быть в порядке.Как только вы наберете 250 000, я думаю, вам нужно разбить его.

Хотя отображение множества элементов пользовательского интерфейса отличается.Если вы попытаетесь привязать диаграмму к провайдеру данных с 10 000 элементов, это слишком много.То же самое для списка или сетки данных.

Но для чистых данных модели, не связанных с пользовательским интерфейсом, я бы рекомендовал до 250 000 в моем опыте.

1 голос
/ 25 января 2011

Да, вы могли бы, возможно, добавить несколько миллионов элементов в массив, и Flash Player не стал бы кричать на вас.Но действительно ли вы этого хотите?

Будет ли запуск приложения дольше, если ему необходимо будет загрузить всю базу данных локально, прежде чем она сможет работать?Если дополнительное время, необходимое для загрузки такого количества данных, не является значительным, стоит ли оптимизировать несколько поисков в базе данных?

Если у вас есть хороший вариант использования для этого, вам придется обратить вниманиек тому, как вы используете эти структуры данных.Цикл по массиву для поиска элемента будет немного медленным, поэтому вы захотите создавать индексы локально, скорее всего, используя несколько хеш-структур.Чем более гибкими вы будете разрешать поисковые запросы, тем интереснее будут проблемы с индексацией.

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