Какой максимальный объем данных можно загрузить в элемент управления формы Windows? - PullRequest
2 голосов
/ 28 апреля 2009

Какой максимальный объем данных я могу загрузить в элемент управления формы?

Мое приложение потребляет слишком много памяти и зависает при добавлении более 500 000 записей в любой элемент управления формами окон в моем опыте. Любые подсказки?

Ответы [ 4 ]

6 голосов
/ 28 апреля 2009

Да, это вызовет проблемы.

Не добавляйте столько записей.

Никому это не нужно. Вместо этого вам нужно добавить возможности фильтрации, чтобы пользователь мог указать, какой диапазон данных он / она хочет использовать.

Например, пусть пользователь сузит поиск по дате (если это чувствительные ко времени данные) или диапазону номеров заказов, или ... ну, что угодно.

Но я могу гарантировать вам, что поиск способа добавить 500К строк в сетку или что-то еще не является решением .

3 голосов
/ 28 апреля 2009

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

Единой меры не существует.

Память приложения включает в себя также дескрипторы GDI, дескрипторы файлов, потоки, которые использует ваше приложение. Убедитесь, что у вас нет утечки дескриптора GDI с помощью диспетчера задач и лайков.

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

1 голос
/ 28 апреля 2009

Это большая куча данных; первое, что нужно сделать, это действительно уменьшить объем данных - однако, поскольку вы упоминаете DataGridView в тегах, существует «виртуальный режим» для сценариев больших данных. См. В MSDN, здесь (обзор) и здесь (как) .

Некоторые (но не все) другие основанные на списке элементы управления также поддерживают виртуальный режим.

0 голосов
/ 28 апреля 2009

Обычно я ограничиваю количество записей, отображаемых на экране, обычно до 20, но это зависит от типа данных, которые вы пытаетесь показать.

Обычно я применяю фильтрацию после этого и возвращаю данные и пересмотренный счет записи в приложение. Если пользователь хочет видеть все записи, он может экспортировать его в другое приложение (обычно Excel, которое может сломаться, но также и в формате XML).

Однако никто не будет читать полмиллиона записей.

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