Следующий фрагмент преобразует данные xml в данные csv в приложении обработки данных. element
- XElement
. В настоящее время я пытаюсь оптимизировать производительность приложения и задаюсь вопросом, могу ли я как-то объединить две операции, которые будут выполняться ниже: В конечном счете, я все же хочу получить доступ к строковому значению join и элементам значений в списке, потому что они используются позже для других целей. Не уверен, что это выполнимо. Любая помощь будет оценена!тип преобразования производительность оптимизируется?
Первая операция в основном разделяет XML-данные всех тегов и просто возвращает текстовые данные между ними или за их пределами. Он также проверяет форматирование. Вторая операция принимает данные XML и удаляет все разрывы и пробелы строк, если они существуют в пределах первых нескольких символов данных.
IEnumerable<string> values = new List<string>();
values = element.DescendantNodes().OfType<XText>()
.Select(v => Regex.Replace(v.Value, "\\s+", " ")).ToList();
string joined = string.Concat(element.ToString().Split().Take(3)) + string.Join(" ", element.
ToString().Split().Skip(3));
спасибо, ваши предложения немного улучшили производительность! – sparta93
Время обработки для ГБ данных длилось от ~ 7 минут до ~ 6,4 минут – sparta93
Если вы замените свой подход 'XElement' на тот, который использует' XmlReader', и делает это потоковым способом ('yield return'ing results as it получает их), вы, вероятно, сможете сделать гораздо лучше; «XmlReader» используется, но обычно быстрее. –