単一スレッドでのみ実行
MATLABランタイムライブラリは、同じライブラリを使用する複数のスレッドをサポートしていません。
高速並列テストのために、 Imatest IT Parallelは複数のプロセスを使用してテストスループットを最大3倍まで向上させることができます。バージョン5.1以降、ITPはITに統合されました。
複数回実行する場合、初期化は1回のみ行う。
ライブラリの初期化にはかなりの計算コストがかかるため、ライブラリへの最初の呼び出しは、その後の実行よりも遅くなります。
ライブラリは、呼び出し元のプログラムのライフサイクル全体を通して初期化された状態を維持する必要があり、呼び出し元のプログラム自体もそれなりの期間存続するべきである。
mclTerminateApplication() または terminate() は、プロセスごとに一度だけ呼び出す必要があります。
mclTerminateApplication (C/C++) または terminate (Python) を複数回呼び出すと、アプリケーションが予期しない動作や望ましくない動作を示す可能性があります。
分析実行中はビジーウェイトを使用しないでください
別のテスタープログラムを呼び出すメインのテスタープログラムは、解析の完了を待つためにビジーウェイトやスピンロックを使用すべきではありません。
画像をディスクに書き込む代わりに直接渡す
画像をディスクに直接渡すことで、Imatest ITがすぐに読み戻すためにディスクにファイルを書き込む必要がなくなります。
高速 SSD および HDD キャッシュの利用により、ディスクへの書き込みと読み取りを繰り返すコストは削減される可能性があるが、それらには他のリスクが伴い、
テストを組み合わせた分析モジュールを使用する
SFRplusとeSFR ISOは、1枚の画像に対して様々な計算を実行します。これらのモジュールは常に優れたパフォーマンスを発揮します。
SFRテストでは、1枚の画像上で複数の領域を使用します。
複数領域選択機能を使用すると、1つのモジュールで画像上の複数のポイントをテストできます。上記で説明した複合解析モジュールを使用できない場合、またはシャープネステストにSFRを使用せざるを得ない場合は、必ず複数領域選択機能を使用してください。
MCR_CACHE_ROOTおよびMCR_CACHE_SIZE環境変数を設定します。
IT/DLL および IT/EXE 呼び出しの起動時間を大幅に短縮するには、 MCR_CACHE_ROOT環境変数をユーザーが読み書きアクセス権を持つフォルダに設定し、 MCR_CACHE_SIZE環境変数を 900000000 以上に設定します。これらの環境変数が設定されている場合、IT の初期化中に発生する長時間の解凍処理によって、データは IT の終了後に削除される一時ディレクトリではなく、 MCR_CACHE_ROOTフォルダに保存されます。関連する解凍済みデータが既にMCR_CACHE_ROOTに存在する場合は、解凍処理がスキップされ、大幅な時間短縮 (約 10 秒) が実現します。
例:
Windows Vista以降の場合:
この環境変数を永続的に設定するには、 setx コマンドを使用します。コマンド ウィンドウを開き、以下を入力してください(フォルダ パスは目的のパスに置き換えてください)。
setx /m MCR_CACHE_ROOT "C:\Users\<this_user>\My Documents\MCR_Cache" setx /m MCR_CACHE_SIZE "900000000"
'/m' は、その変数がすべてのユーザーに対して定義され、新しい環境変数はコマンドウィンドウを閉じた後にのみ使用可能になることを示しています。
Windows XPの場合は、環境変数の設定方法についてMicrosoftの指示に従ってください。
Linuxの場合:
MCR_CACHE_ROOT と MCR_CACHE_SIZE をすべてのユーザーが利用できるようにするには、その定義を/etc/environmentまたは/etc/profileに追加します。
MCR_CACHE_ROOT="/home/<this_user>/Documents/MCR_Cache" MCR_CACHE_SIZE=900000000
そうでない場合は、 ~/.profileファイルまたは~/.bashrcファイルを編集して定義を追加してください。
export MCR_CACHE_ROOT=/home/<this_user>/Documents/MCR_Cache
export MCR_CACHE_SIZE=900000000ハードウェアを投入して問題を解決せよ
ソフトウェアの設定変更では十分な速度向上が得られない場合、より高速なクロック速度とより多くのプロセッサコアを備えたコンピューティングハードウェアを利用することが、パフォーマンスを向上させるための力技となる。