У меня есть большой XML-файл (около 37 МБ - это основной XML-файл в документе Word объемом около 350 страниц), который я пытаюсь найти в XPath. Я делаю это «вручную», а не программно, открывая файл в редакторе XML и ища там.

Я пробовал с Xmplify, QXmlEdit, SublimeText с расширением XPath и т.д., И все они страдают от одной и той же проблемы: просто открытие файла смехотворно медленно и требует огромного количества памяти, а поиск XPath почти невозможен ,

В качестве примера я просто попытался открыть файл в Xmplify. Это заняло около трех минут, и при отсутствии других открытых документов использование памяти Xmplify возросло до 1 ГБ.

Затем я попытался выполнить этот запрос XPath (я ищу все отслеживаемые вставки, состоящие из строки en):

//w:ins[w:r/w:t = 'en']

Это дало мне SPOD на некоторое время. После 15 минут работы на 100% CPU, Xmplify теперь использовал 60 ГБ памяти, и моя ОС сообщала мне, что у меня закончилась память приложения и что мне нужно начинать принудительное завершение работы.

Это кажется мне чрезмерным для одного запроса XPath в одном файле, даже если это довольно большой файл. Другие приложения, которые я пытался использовать, были не столь ужасно плохими, но открытие документа и выполнение любого вида запроса XPath по-прежнему занимали минуты, и их использование памяти исчислялось также и в ГБ, так что Xmplify не только неэффективен.

Что является причиной этого? Почему XPath (очевидно) так ресурсоемок? Различается ли она между операционными системами (моя - macOS Sierra)?

 

Я спорил, стоит ли публиковать это здесь или в StackOverflow, но, поскольку я специально не делаю это программно, я решил, что это, вероятно, лучшее место. Не стесняйтесь мигрировать, если для этого есть лучший стек.

0