Код: Выделить всё
$dom = new \DOMDocument();
$dom->load("SwissProt.xml");
Код: Выделить всё
wget "https://aiweb.cs.washington.edu/research/projects/xmltk/xmldata/data/SwissProt/SwissProt.xml"
Код: Выделить всё
time -v php test.php
Код: Выделить всё
...
Maximum resident set size (kbytes): 1697648
...
Наблюдаемое использование памяти:
- 80 МБ XML-файл → использует ~500 МБ памяти
- 300 МБ XML-файл → использует несколько ГБ памяти
Есть альтернативы, но мне нужен DomDocument, поскольку мне нужно запросить элемент через XPath.
Похоже, это связано с базовой библиотекой libxml2, вот еще один пост об этом. libxml2 занимает огромную память (например, 8 ГБ для 600 МБ документа) для синтаксический анализ
Я также столкнулся с очень похожим потреблением памяти при использовании библиотеки Python lxml.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -xml-files
Мобильная версия