Linq к XML по сравнению с DOM

Указывает локальный путь, соответствующий этому IP.

Возьмем, к примеру, следующее. Допустим, вы пытаетесь привязать мой адрес, который находится где-то в сети. 192.168.0.0

Вы можете написать: socket.bind("192.168.0.0:@tkelly")

В качестве альтернативы, @ может означать определенный путь. Если вы используете ZMQ для других целей, таких как копирование файла, вы можете сделать что-то вроде scp <filea> tkelly@192.168.0.0

5
задан ChrisF 13 September 2013 в 10:06
поделиться

3 ответа

Я считаю, что LINQ -> XML намного проще в использовании, чем DOM. Для меня это более интуитивно понятно и намного легче читать IMO.

1
ответ дан 14 December 2019 в 13:46
поделиться

Использование DOM (например, System.Xml.XmlDocument ), вероятно, будет медленнее из-за расширенной поддержки навигации (все эти ссылки начинают складываться) и эти накладные расходы станут более значительными по мере увеличения числа узлов.

Более простые объектные модели ( System.Xml.Linq.XDocument и System.Xml.XPath.XPathDocument ) не Они имеют такую ​​сложную структуру, но позволяют осуществлять навигацию другими способами. Это может увеличить нагрузку на ЦП, но должно сэкономить память.

В конце концов, вам нужно профилировать (время и пространство) в вашем случае, а также учитывать, насколько реальная (воспринимаемая пользователем) разница это имеет.

Но для максимальная производительность не загружайте весь документ в память вообще: используйте System.Xml.XmlReader и System.Xml.XmlWriter и делайте все в потоке.

3
ответ дан 14 December 2019 в 13:46
поделиться

Я не уверен, что вы заметите очень значительное улучшение производительности с использованием LINQ2XML вместо DOM / XPath. И для DOM, и для LINQ2XML документ, который вы перебираете, представлен в виде дерева в памяти.

Если производительность действительно является проблемой и у вас достаточно большие XML-документы, вы можете взглянуть на элементарную поддержку потоковой передачи XML, которая реализован в структуре (через XStreamingElement ).

2
ответ дан 14 December 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: