メインコンテンツまでスキップ

キャッシュ検出のチューニング

キャッシュ検出は、実行中に必要な画面キャプチャの回数を減らすことでマクロのパフォーマンスを大幅に向上させる最適化機能です。

キャッシュ検出について

デフォルトでは、マクロはテキストや画像の検出を行うたびに画面をキャプチャします。これにより正確さは保証されますが、計算コストが高くなる可能性があります。キャッシュ検出を使用すると、最後にキャプチャしたフレームを保存して再利用でき、繰り返しの画面キャプチャによるオーバーヘッドを削減できます。

キャッシュ設定の使用

キャッシュの有効化

# 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() - 検出精度のしきい値を調整