Ajuste de la detección en caché
La detección en caché es una función de optimización que puede mejorar significativamente el rendimiento de tu macro al reducir el número de capturas de pantalla necesarias durante la ejecución.
Comprender la detección en caché
Por defecto, tu macro captura la pantalla cada vez que necesita realizar una detección de texto o imágenes. Aunque esto garantiza la precisión, puede ser computacionalmente intensivo. La detección en caché te permite almacenar y reutilizar el último fotograma capturado, reduciendo la sobrecarga de las capturas de pantalla repetidas.
Usar los ajustes de caché
Habilitar la caché
# turn cache on
Settings:cacheOn();
Cuando la caché está habilitada:
- La macro almacena el último fotograma capturado en la memoria temporal
- Las operaciones de detección posteriores usan el fotograma en caché en lugar de capturar uno nuevo
- Reduce significativamente el uso de CPU y memoria durante operaciones de detección rápidas
Deshabilitar la caché
# turn cache off
Settings:cacheOff();
Cuando la caché está deshabilitada:
- La macro captura un nuevo fotograma para cada operación de detección
- Proporciona la información de pantalla más actualizada
- Útil cuando el contenido de la pantalla cambia con frecuencia
Mejores prácticas
-
Habilita la caché cuando:
- Realizas varias detecciones en rápida sucesión
- El contenido de la pantalla permanece relativamente estático
- La optimización del rendimiento es una prioridad
-
Deshabilita la caché cuando:
- El contenido de la pantalla cambia rápidamente
- Se requiere una precisión de detección absoluta
- El uso de memoria es una preocupación
Ejemplo de uso
# 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();
Ajustes relacionados
Puedes combinar la detección en caché con otros ajustes de optimización:
Settings:grayscaleOn()- Mejora aún más el rendimiento procesando en escala de grisesSettings:setScanInterval()- Añade retrasos entre las operaciones de detecciónSettings:setMinScore()- Ajusta el umbral de precisión de detección