Re[17]: Десериализация в массив или в список?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 26.04.21 14:21
Оценка:
Здравствуйте, Passerby, Вы писали:

P>Здравствуйте, Serginio1, Вы писали:

S>> Общие затраты будут практически те же. Ну на MoveNext и Current миллиард вызовов в секунду. Дольше уходит на парсинг строк.
P>Так если не сделать сразу коллекцию, то каждый раз когда программе нужны будут данные с IEnumerable будет запускаться новый парсинг (если десериализатор не делает предварительно коллекцию и не кеширует ее). И даже если данные нужны только один раз, какой смысл в IEnumarable, если можно сразу в коллекцию? Только если строка длиннющая или может статься, что не все данные нужны, а только несколько первых, тогда IEnumarable.
S>>Можешь закачать куда угодно если заранее известно количество то конечно массив
P>Как информация о количестве может повлиять на скорость десериализации? Вместо List объявляется массив, в который десериализуется строка. После десериализации можно посмотреть Length. Скорость зависит от того как реализована десериализация в массив: сразу подсчитывается количество элементов и объявляется массив или сначала десериализуется в список, а потом ToArray(). Хотя и в случае десериализации сразу в массив не факт, что это будет быстрее, т.к. подсчет элементов это лишняя операция, а в случае списка просто добавляется следующий элемент, пока не кончится строка.

Ну всегда можешь сделать ToList или ToArray. Но если тебе нужен отбор по записям то память экономится. IEnumerable универсален.
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.