-
Notifications
You must be signed in to change notification settings - Fork 203
Сравнение с другими парсерами (1.6.3)
Imangazaliev edited this page Dec 17, 2018
·
3 revisions
- Возможность поиска в элементе
- Возможность изменения исходного документа
- Удобная работа с формами
- Возможность поиска в элементе
- Возможность изменения исходного документа
Условия тестирования:
- Все парсеры устанавливаются через менеджер пакетов Composer
- Задача парсеров - получить из HTML все элементы по определенному селектору и вывести их текстовое содержимое
Парсить будем заголовки постов Хабра (habr.com). Всего нужно обработать 1000 файлов размером чуть больше 100 kb, общий размер всех файлов составляет приблизительно 130 Mb, все файлы пронумерованы от 0 до 999.
Код для тестирования:
require 'vendor/autoload.php';
$cacheDir = __DIR__.'/../cache';
$startMemory = memory_get_usage();
$startTime = microtime(true);
for ($i=0; $i < 1000; $i++) {
// код парсинга
}
$time = microtime(true) - $startTime;
$memory = memory_get_usage() - $startMemory;
file_put_contents(__DIR__.'/time.txt', $time . PHP_EOL, FILE_APPEND);
file_put_contents(__DIR__.'/memory.txt', $memory . PHP_EOL, FILE_APPEND);
file_put_contents(__DIR__.'/peak.txt', memory_get_peak_usage() . PHP_EOL, FILE_APPEND);
- Nokogiri - 763568
- DiDom - 793096
- Zend Dom - 954712
- DomCrawler - 1534512
- Simple HTML DOM - 16839400
- Nokogiri - 157168
- DiDom - 158896
- Zend Dom - 329232
- DomCrawler - 567440
- Simple HTML DOM - 14113456
- DiDom - 27.0787
- Nokogiri - 27.1009
- DomCrawler - 36.0982
- Zend Dom - 48.3222
- Simple HTML DOM - 188.0247