Впилил поддержку PCRE как движка регекспов в личкрафтовском AdBlock+-е. Заодно удалось провести ряд не-синтетических тестов. Все тесты на одних и тех же данных (глагне rutracker.org), поэтому интересны лишь соотношения между полученными цифрами:
1. Матчинг регекспов с QRegExp — 30 миллисекунд на обработку всех рулесов на запрос в среднем, 700-800 миллисекунд суммарно.
2. Матчинг с PCRE — 11 миллисекунд и 280 миллисекунд соответственно. Загрузка рулесов — 180 миллисекунд, либо 130 с refcount-оптимизациями.
3. Матчинг с PCRE + JIT — 8-9 миллисекунд и 220-240 миллисекунд соответственно. Загрузка рулесов — 380 миллисекунд (уже с refcount'ом).
Такие дела.
Ну и в качестве бонуса для Google+-странички https://plus.google.com/1152504228036144...
1. 50 мс, 7900 мс. Layout time (время обработки DOM-дерева на уже загрузившейся страничке для сокрытия всяких div'ов и текстовой рекламы) — 5282 мс.
2. 26 мс, 3900 мс. Layout time — 411 мс.
3. 16 мс, 2200 мс. Layout time — 235 мс.
Из-за такого пиздеца с QRegExp'ами в билде без PCRE автоматически отключается поддержка некоторого подвида правил AdBlock+'а. Имейте ввиду.
@pooq: моча съела говно