У меня есть php-файл, который должен читать сотни XML-файлов, у меня нет выбора, как эти XML-файлы создаются, они создаются третьей стороной.Ускорение чтения нескольких файлов XML в PHP
Первый xml-файл представляет собой большое количество заголовков для остальных xml-файлов, поэтому я ищу первый XML-файл, чтобы получить имена файлов для остальных xml-файлов.
Затем я читал каждый XML-файл, ища его значения для определенной фразы.
Этот процесс очень медленный. Я говорю 5 1/2 минуты времени автономной работы ... Что неприемлемо для веб-сайта, клиенты не останутся надолго.
Кто-нибудь знает способ, который мог бы ускорить мой код, до максимальной продолжительности работы около 30 секунд.
Вот Pastebin моего кода: http://pastebin.com/HXSSj0Jt
Спасибо, извините за непонятный английский ...
У меня есть cachegrind.out, а часть, которая занимает время, - это SimpleXMLElement -> __ Construct this в среднем принимает 1.98s – Aaron
Это будет в основном время загрузки. Попробуйте разделить процесс загрузки и xml, используйте file_get_contents() или curl для поддержки gzip. – goat
Прошу отличить. Это не всегда просто время загрузки. Если XML большой, требуется много памяти и времени для создания DOM из XML в случае использования DOM/SimpleXML. Поэтому, если нет возможности избежать обработки больших XML-файлов, единственным методом выбора являются потоковые (XMLReader)/основанные на события (SAX) синтаксические анализаторы. DOM в таких сценариях просто не работает. – cryo28