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