Настройка распознавания с кэшированием
Распознавание с кэшированием — это функция оптимизации, которая может значительно повысить производительность вашего макроса за счёт сокращения количества захватов экрана, необходимых при выполнении.
Понимание распознавания с кэшированием
По умолчанию ваш макрос захватывает экран каждый раз, когда нужно выполнить распознавание текста или изображения. Хотя это гарантирует точность, такой подход может быть ресурсоёмким. Распознавание с кэшированием позволяет сохранять и повторно использовать последний захваченный кадр, снижая накладные расходы от повторных захватов экрана.
Использование настроек кэша
Включение кэша
# turn cache on
Settings:cacheOn();
Когда кэш включён:
- Макрос сохраняет последний захваченный кадр во временной памяти
- Последующие операции распознавания используют кэшированный кадр вместо захвата нового
- Значительно снижается нагрузка на CPU и память при быстрых операциях распознавания
Отключение кэша
# turn cache off
Settings:cacheOff();
Когда кэш отключён:
- Макрос захватывает новый кадр для каждой операции распознавания
- Предоставляется самая актуальная информация с экрана
- Полезно, когда содержимое экрана часто меняется
Лучшие практики
-
Включайте кэш, когда:
- Выполняется несколько распознаваний подряд
- Содержимое экрана остаётся относительно статичным
- Приоритетом является оптимизация производительности
-
Отключайте кэш, когда:
- Содержимое экрана быстро меняется
- Требуется абсолютная точность распознавания
- Важен контроль использования памяти
Пример использования
# 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()— настроить порог точности распознавания