В сценарии, когда большое количество строк необходимо проанализировать с помощью регулярных выражений, учитывая, что для всех тестов будет использоваться одна и та же игла 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
Разобрать множество маленьких строк или одну большую строку — что быстрее? ⇐ Php
Кемеровские программисты php общаются здесь
1715324215
Anonymous
В сценарии, когда большое количество строк необходимо проанализировать с помощью регулярных выражений, учитывая, что для всех тестов будет использоваться одна и та же игла RegEx, это будет быстрее:
[*]Чтобы протестировать каждую строку в массиве по отдельности или;
[*]Объединить все в одну большую строку и протестировать только один раз?
Я считал, что лучше использовать номер 2, вместо того, чтобы многократно запускать механизм RegEx для обработки массива строк. Однако после некоторого тестирования на PHP (PCRE) это показалось неверным.
Бенчмарк
Я сделал простой тест в PHP 5.3 (исходный код) и получил следующие результаты:
[b]122185[/b] взаимодействий за 5 секунд при тестировании нескольких строк меньшего размера. внутри массива
[b]26853[/b] взаимодействий за 5 секунд при выполнении одного теста большой строки
Поэтому я должен сделать вывод, что первый метод работает до 5 раз быстрее. Однако я хотел бы попросить авторитетного ответа, подтверждающего это; Я мог бы сделать ошибочные предположения из-за некоторой оптимизации PHP, о которой я не знаю.
Всегда ли более оптимизированное решение фрагментировать большие строки перед их тестированием с помощью регулярных выражений, а не специально в PCRE? ?
preg_grep()
Я не думаю, что эту функцию здесь следует рассматривать. Это тест производительности, а не вопрос оптимизации. Не говоря уже о том, что функция — это метод, специфичный для PHP. Кроме того, preg_match_all возвращает все совпавшие подстроки, тогда как preg_grep просто указывает, какие элементы массива совпали.
Подробнее здесь: [url]https://stackoverflow.com/questions/14016861/parse-many-small-strings-or-a-single-big-string-which-is-faster[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия