Реальный ответ на ваш вопрос: это зависит.
Я бы выступил против разработки такой системы, вместо этого использовал бы ленивую загрузку и подкачку страниц. Но предположим, что вы это сделаете, мы можем немного подсчитать (изменить цифры на фактические значения):
Особенности памяти
- 85 свойств должны быть назначены, скажем, с 16 байтами, чем это составляет 1360 байтов
- Список содержит указатели на каждый элемент, что составляет 1360 + 4 (или 1360 + 8) = 1364 байта
- 5000 * 1364 = 6820000
- Отображение в DataGridView: издержки на строку около 4000 байтов (вы должны проверить это самостоятельно, часть может быть сохранена в зависимости от прокрутки): 27280000000 =
- Это 26ГБ
Теперь у меня есть система с 64 ГБ внутри, 64 бита. Это может занять всего несколько секунд (при условии, что я не буду прокручивать). Однако заполнение 5000 строк может занять меньше нескольких миллисекунд, даже в средней системе (5000 записей - это немного).
Любая система, которой не хватает памяти, начнет пейджинг (переключение на физический файл подкачки). Это становится очень медленным, порядки величины. Помните об этом при игре с относительно большими наборами данных.
Примечание: я предположил, что все было случайно, а вы пытались измерить скорость самого объекта. Но если ваши данные поступают с диска, из удаленной базы данных или, что еще хуже, из веб-службы, это может занять от нескольких секунд до нескольких часов.
Активный каталог
РЕДАКТИРОВАТЬ: в последнем комментарии под ответом Дарина, вы говорите об Active Directory. Это дистанционно, и ваша скорость, скорее всего, будет зависеть больше от AD, чем от чего-либо еще. Добавьте подкачку страниц (т. Е. Загружайте только то, что хотите показать), и вы получите разумную производительность.
Ваш код
Вы показываете немного своего кода. Попробуйте / поймайте вокруг сеттеров: они ничего не делают, нечего ловить. С точки зрения производительности: вы только что показали часть, которая не критична для производительности (если ни одна из этих строк не является огромной, см. Мой раздел памяти выше). Часть, которая медленная , является вашей частью AD.
Заключение (пока)
Пересмотрите свой дизайн. Прочитайте данные в виде фрагментов из 10 или 20 записей и запросите только те поля / свойства из AD, которые действительно необходимы для отображения. Вы не можете показать их все сразу. DataGridView имеет отличные функции для подкачки, я предлагаю вам использовать события подкачки в сочетании с лучшей загрузкой данных.
В ответ на ваше замечание о том, что оно неожиданно заняло намного больше времени, чем 5000 записей: измерьте счетчики производительности каждой системы, проверьте память, сбои страниц, сеть. Или просто не читайте более 5000 записей одновременно.