В Delphi доступно 3 варианта реализации:
- MSXML
- Xerces XML
- ADOM XML v4
MSXML является IDOMImplementation по умолчанию.
Мой тест - это подсчет времени, необходимого для загрузки 10 МБ XML-файла. Я использую модуль Delphi, сгенерированный из XSD, используя привязку данных XML для загрузки файла XML. Это устройство имеет 3 общие функции:
function Getmenubar(Doc: IXMLDocument): IXMLMenubarType;
function Loadmenubar(const FileName: WideString): IXMLMenubarType;
function Newmenubar: IXMLMenubarType;
Из Интернета я узнаю, что некоторые комментируют, что накладные расходы MSXML высоки, что они не работают, если сравнивать с другим анализатором XML. Тем не менее, мое исследование показывает, что MSXML является лучшим среди других. Xerces XML 2nd и ADOM XML v4 худшие:
- MSXML - 0,6410 секунд
- Xerces XML - 2,4220 секунд
- ADOM XML v4 - 67,50 секунд
Я также сталкивался с OmniXML, который утверждает, что имеет гораздо лучшую производительность по сравнению с MSXML, но мне так и не удалось использовать его с модулем, генерируемым связыванием данных XML.
Есть ли другой поставщик, который реализует IDOMImplementation Delphi, который работает намного лучше, чем MSXML? Я использую Delphi 2010 и Windows 7.