Русское сообщество AutoIt

  • Май 19, 2013, 13:00:41 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Создан файловый архив для участников форума.

Закачивайте свои файлы и получайте рейтинг, прямые ссылки, и т.п.

Для изображений и скриншотов по прежнему есть AUTOIT.RV.UA

Реклама

Автор Тема: [Новая функция] Предкомпиляция регулярного выражения (StringRegExpCompile)  (Прочитано 3014 раз)

0 Пользователей и 1 Гость смотрят эту тему.

amel27 [?]

не секрет, что применение регулярных выражений делится на два этапа:

- предкомпиляция выражения;
- выполнение скомпилированного выражения с целевым текстом

каждый из этих этапов отнимает драгоценные "тики" процессора... при разборе больших текстов время компиляции несущественно, но для коротких строк это время значительно превосходит время выполнения и тут уже не поможет никакая оптимизация регулярного выражения... ситуация усугубляется для случая, когда одно выражение применяется в цикле (например, по массиву строк) - каждый вызов приводит к ненужной перекомпиляции одного и того же выражения

отсюда возникает потребность в ф-ции предварительной компляции выражения в хэндл, который может затем применяться в StringRegExp/StringRegExpReplace наравне с самим выражением, вполне вероятно потребуется парная ф-ция закрытия хэндла/освобождения памяти

как следует из PCRE man page, движок поддерживает эту возможность


Добавлено: Апрель 06, 2010, 11:58:02




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1941
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 6233
  • Версия AutoIt: 3.3.8.1
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Супер, переведу на Английский и буду репортить, это действительно поможет ускорить обработку р.выражений.




  Записан
Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.

   Онлайн видео!

«Не оказываю техподдержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Suppir [?]

amel27, если не секрет, на чем сидел до AutoIt? :)




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1941
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 6233
  • Версия AutoIt: 3.3.8.1
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
Цитата
It is not a secret that the use of regular expressions is divided into two phases:

- Expression precompilation;
- Execution of compiled expression with target text

Each of these phases takes precious time (processor ticks)...  when dealing with large texts, compilation time is unimportant, but for short lines this time greatly exceeds the execution time, and any kind of regular expression optimization will not help here... the situation is exacerbated for the case when one expression is used in the cycle loop (for example, an array of lines) - each call leads to unnecessary recompilation of the same expression.
Hence the need for a function to pre-compile the expression in the handle, which can then be applied to StringRegExp/StringRegExpReplace on a par with the very expression, most likely it will require a steam function to close the handle / free memory.

Following the PCRE man page, the engine supports this possibility.

Отправлять?

P.S
Только вот как тикет назвать?




  Записан

amel27 [?]

Цитата
уфф, эт не ко мне - в буржуйском не силен... :(

Только вот как тикет назвать?
может, "RegExp precompile handling"?

amel27, если не секрет, на чем сидел до AutoIt?
не секрет - форт, бейсик, с регулярками познакомился только в AutoIT




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1941
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 6233
  • Версия AutoIt: 3.3.8.1
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
[Новая функция] OnScreenDisplay [OSD]
Баг-репорты и запросы на новые функции
Redline 5 5419 Последний ответ Ноябрь 26, 2009, 14:53:56
от CreatoR
[новая функция] альтернативный метод работы PixelSearch
Баг-репорты и запросы на новые функции
C2H5OH 0 1039 Последний ответ Декабрь 12, 2011, 18:50:06
от C2H5OH
[Данные, строки] Преобразование строки с помощью регулярного выражения
Регулярные выражения и прочее
Math 1 767 Последний ответ Декабрь 30, 2011, 19:27:41
от madmasles
Перенесено: [Данные, строки] Преобразование строки с помощью регулярного выражения
AutoIt для новичков
Kaster 0 578 Последний ответ Декабрь 30, 2011, 22:37:28
от Kaster
[Новая функция] Запрос на новую функцию или макро для возвращения текущей функции
Баг-репорты и запросы на новые функции
Kaster 14 1967 Последний ответ Январь 10, 2012, 03:37:47
от Kaster
[Новая функция] дополнительный параметр для _IELinkClickByText
Баг-репорты и запросы на новые функции
C2H5OH 0 849 Последний ответ Январь 09, 2012, 12:08:49
от C2H5OH
[Элементы GUI] Новая функция для каждой кнопки в GUI?
AutoIt для новичков
rollex 1 481 Последний ответ Март 29, 2012, 17:14:33
от AZJIO
[Новая функция] Возможно ли в AutoIt создать новый тип данных - массив функций?
Баг-репорты и запросы на новые функции
C2H5OH 12 1785 Последний ответ Январь 12, 2013, 20:43:29
от erlik
[Данные, строки] возможно ли применение регулярного выражения для сылки
Регулярные выражения и прочее
general66 11 1172 Последний ответ Октябрь 14, 2012, 22:02:33
от general66
[Новая функция] В AutoIt поддержка технологии Active Scripting?
Баг-репорты и запросы на новые функции
Renz 3 442 Последний ответ Апрель 10, 2013, 11:49:48
от Renz


Реклама

* Последние сообщения на форуме
post Re: Как организовать комплексное удаление тегов и ненужной инфы?
[Регулярные выражения и прочее] inververs Сегодня в 12:55:15
post Re: Еще один Dll Viewer
[Примеры и рабочие проекты] erlik Сегодня в 12:52:27
post [Автоматизация] Random в MouseClick
[Автоматизация IE и Web-интерфейса] takse Сегодня в 12:02:08
post Re: [Сеть, интернет] Инициализация интернет-подключения через RasDial (API rasapi32.dll)
[AutoIt для новичков] AZJIO Сегодня в 06:27:54
post Re: [Сеть, интернет] Инициализация интернет-подключения через RasDial (API rasapi32.dll)
[AutoIt для новичков] madmasles Сегодня в 05:52:43
post Re: С днём рождения Hunter_ua, illja!
[Дни рождения] madmasles Сегодня в 05:45:34
post Re: Еще один Dll Viewer
[Примеры и рабочие проекты] joiner Сегодня в 05:33:21
post Re: Еще один Dll Viewer
[Примеры и рабочие проекты] AZJIO Сегодня в 04:02:01
post Re: Еще один Dll Viewer
[Примеры и рабочие проекты] erlik Сегодня в 03:39:08
post Re: Как организовать комплексное удаление тегов и ненужной инфы?
[Регулярные выражения и прочее] AZJIO Сегодня в 03:33:30

* Пользователи онлайн
  • Dot Гостей: 95
  • Dot Скрыт: 2
  • Dot Пользователей: 16
  • Dot Пользователи Online: