呼叫 Imatest IT 函式庫的最佳實踐

僅在單線程中運行

MATLAB 運行時庫不支援使用同一個庫的多執行緒運行。

為了實現高速平行測試, Imatest IT Parallel可以使用多個進程,將測試吞吐量提高至三倍。從 5.1 版本開始,ITP 已整合到 IT 中。

 

只需初始化一次即可多次運行

初始化函式庫需要大量的運算資源,因此首次呼叫該函式庫的運行速度會比後續運行慢。

函式庫應該在呼叫程式的整個生命週期內保持初始化狀態,而呼叫程式本身也應該具有合理的生命週期。

 

每個行程只能呼叫一次 mclTerminateApplication() 或 terminate() 函數。

多次呼叫 mclTerminateApplication (C/C++) 或 terminate (Python) 可能會導致應用程式出現不可預測或不希望出現的行為。

 

分析運行時請勿使用忙碌等待

呼叫單獨測試程式的主測試程式不應該使用忙碌等待或自旋鎖來等待分析完成。

 

直接傳遞映像,而不是寫入磁碟。

使用直接傳遞映像的方式,避免將檔案寫入磁碟,然後再由 Imatest IT 讀取。

高速固態硬碟和機械硬碟快取的出現可能會降低重複讀寫磁碟的成本,但也存在其他相關風險。

 

使用結合了各項測試的分析模組

SFRplus 和 eSFR ISO 會對單張影像執行多種不同的運算。這些模組的效能始終更優。

 

對於SFR測試,請使用單張影像上的多個區域。

多區域選擇允許單一模組測試影像上的多個點。如果您無法使用上述組合分析模組,而必須使用 SFR 進行清晰度測試,請務必使用多區域選擇。

設定 MCR_CACHE_ROOT 和 MCR_CACHE_SIZE 環境變數

為了大幅縮短 IT/DLL 和 IT/EXE 呼叫的啟動時間,請建立並設定環境變數MCR_CACHE_ROOT使其指向使用者俱有讀寫權限的資料夾;同時,將環境變數MCR_CACHE_SIZE值設為 900000000 或更大。設定這些環境變數後,IT 初始化期間耗時的解壓縮階段會將資料儲存在MCR_CACHE_ROOT資料夾中,而不是儲存在 IT 退出後會被刪除的暫存目錄中。如果相關的解壓縮資料已存在於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 系統,請依照 微軟的說明設定環境變數。

對於 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

用硬體解決問題

當軟體配置變更無法帶來足夠的效能提升時,使用具有更快時脈速度和更多處理器核心的運算硬體是提高效能的直接方法。

參見: