Zum Hauptinhalt springen

Optimierung der Cache-Erkennung

Die Cache-Erkennung ist eine Optimierungsfunktion, die die Leistung Ihres Makros erheblich verbessern kann, indem sie die Anzahl der erforderlichen Bildschirmaufnahmen während der Ausführung reduziert.

Grundlagen der Cache-Erkennung

Standardmäßig nimmt Ihr Makro bei jeder Text- oder Bilderkennung den Bildschirm auf. Dies gewährleistet zwar Genauigkeit, kann aber rechenintensiv sein. Die Cache-Erkennung ermöglicht es Ihnen, den zuletzt aufgenommenen Frame zu speichern und wiederzuverwenden, was den Aufwand wiederholter Bildschirmaufnahmen verringert.

Verwendung der Cache-Einstellungen

Cache aktivieren

# turn cache on
Settings:cacheOn();

Wenn der Cache aktiviert ist:

  • Das Makro speichert den zuletzt aufgenommenen Frame im temporären Speicher
  • Nachfolgende Erkennungsvorgänge verwenden den zwischengespeicherten Frame anstatt einen neuen aufzunehmen
  • Reduziert die CPU- und Speichernutzung bei schnellen Erkennungsvorgängen erheblich

Cache deaktivieren

# turn cache off
Settings:cacheOff();

Wenn der Cache deaktiviert ist:

  • Das Makro nimmt für jeden Erkennungsvorgang einen neuen Frame auf
  • Liefert die aktuellsten Bildschirminformationen
  • Nützlich, wenn sich der Bildschirminhalt häufig ändert

Bewährte Verfahren

  1. Cache aktivieren, wenn:

    • Mehrere Erkennungen in schneller Folge ausgeführt werden
    • Der Bildschirminhalt relativ statisch bleibt
    • Leistungsoptimierung Priorität hat
  2. Cache deaktivieren, wenn:

    • Der Bildschirminhalt sich schnell ändert
    • Absolute Erkennungsgenauigkeit erforderlich ist
    • Speicherverbrauch ein Anliegen ist

Beispielverwendung

# 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();

Verwandte Einstellungen

Sie können die Cache-Erkennung mit anderen Optimierungseinstellungen kombinieren:

  • Settings:grayscaleOn() - Die Leistung weiter verbessern durch Verarbeitung in Graustufen
  • Settings:setScanInterval() - Verzögerungen zwischen Erkennungsvorgängen hinzufügen
  • Settings:setMinScore() - Den Schwellenwert für die Erkennungsgenauigkeit anpassen