Здесь у Кристиана есть несколько интересных мыслей, результатов и кода: он анализирует 10-мегабайтный XML-документ с XML-API PHP5. Выделяет компромисс между производительностью и использованием памяти при использовании DOM и Sax / XMLReader.
Лично немного удивлен, что XMLReader оказался быстрее, чем SAX. Синтаксические парсеры «в стиле Pull» обычно реализуются путем «перенаправления» парсера SAX, и, с первого взгляда на источник libxml2 , кажется, он делает то же самое. Я предполагаю, что выполнение многих функций обратного вызова на уровне C быстрее, чем выполнение их на уровне PHP.