Skip to content

Исправление медленной работы токенайзера с регулярными выражениями #7

@Stivo182

Description

@Stivo182

Столкнулся с проблемой медленной работы токенайзера и нашел решение как исправить это.

В моем случае причина медленной работы была в большом количестве найденных совпадений в регулярном выражении и очень медленной работы метода Количество у объекта КоллекцияСовпаденийРегулярногоВыражения в этом месте. Оборачивание в Попытку Исключение вместо вызова метода Количество уже дало ускорение х20 в моем случае, но вместо этого лучше оптимизировать объект РегулярноеВыражение, которое передается в спецификацию токенайзера:

  • В паттерне всегда должен быть оператор начала строки ^. Пример: ^[a-zA-Z]+
  • Для объекта РегулярноеВыражение устанавливать свойство Многострочный = Ложь.

В этом случае при выполнении регулярного выражения всегда будет максимум 1 найденное совпадение. В моем случае для многострочного текста с 20 тыс. токенами дало прирост x70 к производительности .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions