Мне нужен совет. У меня есть приложение, которое импортирует 10 000 строк, содержащих имя & адрес из текстового файла в XElements, которые впоследствии добавляются в синхронизированную очередь. Когда импорт завершен, приложение запускает рабочие потоки, которые обрабатывают XElements путем их деинкретизации, делая вызов базы данных, вставляя вывод базы данных в документ запроса и вставляя обработанный документ в очередь вывода. Когда все запросы обрабатываются, очередь вывода записывается на диск как XML-документ.XElement vs Dictionary
Я использовал XElements для запросов, потому что мне нужна была гибкость для добавления полей в запрос во время обработки. В зависимости от типа задания приложение может потребовать, чтобы он добавлял номер телефона, дату рождения или адрес электронной почты к запросу на основе совпадения имени/адреса с базой данных общедоступных записей.
Мои вопросы: XElements, похоже, использует довольно немного памяти, и я знаю, что существует много разбора, поскольку документ пробивается через методы обработки. Я рассматриваю возможность замены XElements на объект Dictionary, но я скептически отношусь к тому, что выигрыш будет стоить усилий. По сути, это выполнит то же самое.
Мысли?
Я на самом деле не с помощью XML, пока я не пишу выход на диск. В этот момент я добавляю XElements из очереди вывода в XDocument и сохраняю его на диск. Что касается памяти, я арендую выделенный сервер.Они взимают 50 долларов США за месяц за дополнительный концерт, который отрывается. Если вы начнете факторинг стоимости в течение года, это действительно добавит. – user135498
UPDATE: я реорганизовал код для использования словаря вместо XElement. Код намного чище, потому что я избегал синтаксического анализа. Мой исходный код обработан на 38 мс на запись. Первая итерация обработанного кода обрабатывается в 45 мс. Я реорганизовал еще один раз, чтобы удалить 2 вызова метода Remove(), а время обработки - до 31 мс. – user135498