目前發生此一問題的VI模組主要功能列於先前我於版上提問時所提及的內容,請見以下連結:
同一路徑下僅針對新增的檔案進行讀取與資料處理 - LabVIEW / LabVIEW 幼幼班 - LabVIEW360論壇
然而此一模組在跑少量檔案時,都可以順利執行,但…
當檔案數量大時(219個左右,其中有7個超過100MB,45個超過1MB)
運行大約1分鐘左右即開始出現以下警告:
- 工作管理員中的Labview程序所佔的記憶體增加至近3000MB
- windows系統回報以下錯誤視窗
- Labview跳出警告視窗如下圖
- Labview提示下圖中的資料線有問題
隨後我於網路上搜尋了一些方法如下,但嘗試後仍然無效
- 於每一個自己建立的subvi中加入下圖vi
- 於每一個自己建立的subvi右鍵>call setup…>Loading option>選擇Reload for each call
還請版上厲害的高手出手相救,不吝賜教。
你可能要先檢查程式是不是有資料累積沒有清除的狀況
造成長時間使用時出現記憶體不足
或是先轉移64的版本,記憶體可以取得的比較多,但可能只是把發生狀況的時間延後而已
目前我也有將此一問題拋到NI社群上提問,
目前上面有外國人建議不要使用build array vi,看看是否可以改寫為在主VI一開始執行時馬上創建一個global array,而之後索取sorting出來的資料都是丟到這個global array之上,但我並不是很清楚如何實現這樣的想法。
以下即為我在NI社群上提出相同問題的連結:
Re: After the VI runs for a period of time, Labview displays an error report window and Windows memory shortage warning - NI Community
裡面有提供我所撰寫的source code,包含主VI、子VI以及log file data。
還請360版上的高手們幫忙看看這個資料搜尋系統裡面的寫法有哪些部份可以改善?
並且可以給予一些改善方法的sample code,亦或可直接對於我的source code進行修正,謝謝!