Разобрать множество маленьких строк или одну большую строку — что быстрее?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Разобрать множество маленьких строк или одну большую строку — что быстрее?

Сообщение Anonymous »

В сценарии, когда большое количество строк необходимо проанализировать с помощью регулярных выражений, учитывая, что для всех тестов будет использоваться одна и та же игла RegEx, это будет быстрее:

[*]Чтобы протестировать каждую строку в массиве по отдельности или;
[*]Объединить все в одну большую строку и протестировать только один раз?

Я считал, что лучше использовать номер 2, вместо того, чтобы многократно запускать механизм RegEx для обработки массива строк. Однако после некоторого тестирования на PHP (PCRE) это показалось неверным.
Бенчмарк

Я сделал простой тест в PHP 5.3 (исходный код) и получил следующие результаты:

122185 взаимодействий за 5 секунд при тестировании нескольких строк меньшего размера. внутри массива
26853 взаимодействий за 5 секунд при выполнении одного теста большой строки

Поэтому я должен сделать вывод, что первый метод работает до 5 раз быстрее. Однако я хотел бы попросить авторитетного ответа, подтверждающего это; Я мог бы сделать ошибочные предположения из-за некоторой оптимизации PHP, о которой я не знаю.
Всегда ли более оптимизированное решение фрагментировать большие строки перед их тестированием с помощью регулярных выражений, а не специально в PCRE? ?
preg_grep()
Я не думаю, что эту функцию здесь следует рассматривать. Это тест производительности, а не вопрос оптимизации. Не говоря уже о том, что функция — это метод, специфичный для PHP. Кроме того, preg_match_all возвращает все совпавшие подстроки, тогда как preg_grep просто указывает, какие элементы массива совпали.

Подробнее здесь: https://stackoverflow.com/questions/140 ... -is-faster
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»