フィルター性能の分析
プログラム統計ウィンドウには、選択したマクロフィルターの時間プロファイルに関する情報が含まれています。
実際のビジョンアルゴリズムは非常に高速である必要があるため、これは非常に重要です。 ただし、プログラムの最適化を開始する前に、後で適切なものを最適化できるように、何を最適化する必要があるかを理解しておく必要があります。 必要な情報がどのように表示されるかは次のとおりです。
上の図からわかるように、プログラムの実行時間はいくつかの異なる要因の影響を受けます。 最も重要なのは、コア データ処理ツールに相当する「ネイティブ フィルター」時間です。 「データ転送」には追加の時間がかかります。これは、フィルタ間の接続で発生するすべての処理に関連します。 これには、自動変換だけでなく、配列およびシングルトン接続での配列のパックおよびアンパックも含まれます。 「その他」と呼ばれる別の統計は、プログラムを実行する仮想マシンに関連しています。 この値が重要な場合は、C++ コード生成を検討する価値がある可能性があります。 最後の要素「GUI」は、データやプログラムの実行状況の可視化に相当します。 この部分は開発環境にのみ関連しており、実行時環境ではゼロにまで削減できる可能性があると予想できます。
備考:
- 実際には、連続したプログラムの実行でパフォーマンス統計が大幅に変化する可能性があります。 プログラムを数回実行して、統計が一貫しているかどうかを確認することをお勧めします。
EnumerateIntegers フィルタをプログラムに追加してループを強制し、1 つのプログラムからではなく多数のプログラムからパフォーマンス統計を収集することも役立つ場合があります。 - パフォーマンスをテストするときは、診断モードをオフにしてください。
- データ プレビュー パネル、プログラム エディターのアニメーション、さらにはコンソール ウィンドウも、Aurora Vision Studio のパフォーマンスに影響を与える可能性があります。 グラフィック環境の影響を最小限に抑えてパフォーマンスをテストするには、プログラム " プレビュー更新モード" 視覚化を無効にする を選択します。 (ただし、この時点では何も表示されませんが、驚かないでください。)
- すべてのウィンドウが閉じている場合でも、パフォーマンスに影響を与えるバックグラウンド スレッドがいくつか存在します。 Executor (ランタイム) アプリケーションを使用してプログラムを実行すると、パフォーマンスがさらに高くなる可能性があります。
- プログラムの最初の反復は遅くなる可能性があることに注意してください。 これは、最初の反復でメモリ バッファが割り当てられ、フィルタが初期化され、外部デバイスとの通信が確立されるためです。
以下も参照してください。
Optimizing Image Analysis for Speed