-
Notifications
You must be signed in to change notification settings - Fork 203
Сравнение с другими парсерами (1.0)
Imangazaliev edited this page Mar 25, 2016
·
1 revision
- Возможность поиска в элементе
- Удобная работа с формами
- Возможность поиска в элементе
- Возможность изменения исходного документа
Условия тестирования:
- Все парсеры устанавливаются через менеджер пакетов Composer
- Задача парсеров - получить из HTML все элементы по определенному селектору и вывести их текстовое содержимое
Всего нужно обработать три файла:
- 100 элементов ~ 1000 строк ~ 60 kb
- 1000 элементов ~ 10000 строк ~ 600 kb
- 5000 элементов ~ 50000 строк ~ 3000 kb
Код для тестирования:
require 'vendor/autoload.php';
$filepath = __DIR__.'/../files/'.$argv[1].'.html';
$html = file_get_contents($filepath);
$startMemory = memory_get_usage();
$startTime = microtime(true);
// код парсинга
$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);
- Nokogiri - 125152
- DiDom - 177024
- Zend Dom - 217120
- DomCrawler - 663632
- Simple HTML DOM - 3093680
- Nokogiri - 1033264
- DiDom - 1671312
- Zend Dom - 1674328
- DomCrawler - 1823800
- Simple HTML DOM - 28418904
- Nokogiri - 4798024
- DiDom - 7662488
- Zend Dom - 7880344
- DomCrawler - 9372056
- Simple HTML DOM - Нехватка памяти
- DiDom - 0.016069
- Nokogiri - 0.019341
- DomCrawler - 0.032912
- Zend Dom - 0.213485
- Simple HTML DOM - 0.415827
- DiDom - 0.2003519
- Nokogiri - 0.2230408
- DomCrawler - 0.2524929
- Simple HTML DOM - 1.518197
- Zend Dom - 5.382406
- DiDom - 3.876836
- Nokogiri - 4.875494
- DomCrawler - 11.90424
- Zend Dom - 179.160342
- Simple HTML DOM - Нехватка памяти