Перейти к основному содержимому

Настройка распознавания с кэшированием

Распознавание с кэшированием — это функция оптимизации, которая может значительно повысить производительность вашего макроса за счёт сокращения количества захватов экрана, необходимых при выполнении.

Понимание распознавания с кэшированием

По умолчанию ваш макрос захватывает экран каждый раз, когда нужно выполнить распознавание текста или изображения. Хотя это гарантирует точность, такой подход может быть ресурсоёмким. Распознавание с кэшированием позволяет сохранять и повторно использовать последний захваченный кадр, снижая накладные расходы от повторных захватов экрана.

Использование настроек кэша

Включение кэша

# turn cache on
Settings:cacheOn();

Когда кэш включён:

  • Макрос сохраняет последний захваченный кадр во временной памяти
  • Последующие операции распознавания используют кэшированный кадр вместо захвата нового
  • Значительно снижается нагрузка на CPU и память при быстрых операциях распознавания

Отключение кэша

# turn cache off
Settings:cacheOff();

Когда кэш отключён:

  • Макрос захватывает новый кадр для каждой операции распознавания
  • Предоставляется самая актуальная информация с экрана
  • Полезно, когда содержимое экрана часто меняется

Лучшие практики

  1. Включайте кэш, когда:

    • Выполняется несколько распознаваний подряд
    • Содержимое экрана остаётся относительно статичным
    • Приоритетом является оптимизация производительности
  2. Отключайте кэш, когда:

    • Содержимое экрана быстро меняется
    • Требуется абсолютная точность распознавания
    • Важен контроль использования памяти

Пример использования

# Enable cache for a sequence of related detections
Settings:cacheOn();
Screen:find('Button 1.jpg');
Screen:find('Button 2.jpg');
Screen:find('Button 3.jpg');

# Disable cache when done
Settings:cacheOff();

Связанные настройки

Вы можете сочетать распознавание с кэшированием с другими настройками оптимизации:

  • Settings:grayscaleOn() — дополнительно повысить производительность за счёт обработки в оттенках серого
  • Settings:setScanInterval() — добавить задержки между операциями распознавания
  • Settings:setMinScore() — настроить порог точности распознавания