Sirs
如附檔在執行過程中出現記憶體不足的訊息
從工作管理員中顯示出,2G的記憶體已快用滿了
程式應該是不會用掉這麼多資源。
程式是用來每隔一段時間(如10秒)讀取設備的資料一次,雖然有200個設備在讀取資料,但是也不致於用到2G.
過程中有用陣列去儲存這些資料並隨時可以圖形顯示所有的資料,還有用到全堿變數儲存資料方便各vi間的運用。
各位如有這方面的經驗或建議請提供小弟參考。記憶體不足.rar
Sirs
如附檔在執行過程中出現記憶體不足的訊息
從工作管理員中顯示出,2G的記憶體已快用滿了
程式應該是不會用掉這麼多資源。
程式是用來每隔一段時間(如10秒)讀取設備的資料一次,雖然有200個設備在讀取資料,但是也不致於用到2G.
過程中有用陣列去儲存這些資料並隨時可以圖形顯示所有的資料,還有用到全堿變數儲存資料方便各vi間的運用。
各位如有這方面的經驗或建議請提供小弟參考。記憶體不足.rar
程式一開始執行就耗如此大的記憶體嗎?
如果是隨執行時間增大的memory leak, 通常是session有開沒關, 查一下每一個硬體的initial vi 是否有對應的close vi吧...有Obtain Queue /Notifier /Semarphore 就要有對應的 Release Queue /Notifier /Semaphore
這就是出來混的, 遲早要還的道理 (誤)
Sir
這兩星期有將程式整理了一下,照你說的把開的檔用完就關,但是記憶體還是消耗的很快,如之前所說,量測的設備可達255組,目前測試是用40組而已,2G的RAM只跑了2個多小時,因為要記錄量測的資料且可即時將資料以波形圖顯示,所以是用陣列來儲存,每一類別用一個陣列來存,因為有255組,所以每一類別又是255維的陣列(最多,目前是用40維來測試),又有用一vi來存變數做為每個獨立功能的vi間傳參數。GV.vi
以每筆資料8bits=1byte來看應該也用不到1G的記憶體容量吧,怎麼會2G的RAM還不夠用,難道Labview用很大的容量來存陣列嗎?
又比如設定執行30分鐘後結束,到時間時是有結束,VI也已經停止了但是游標還是顯示在忙錄中,打開工作管理員來看程式還是顯示沒有回應,而執行的時間愈久等的時間就愈久,所以也不知道Labview 是不是已經當機了,不知道這是不是跟用掉太多記憶體有關?
如下圖程式已經停止了但是確沒辦法回到正常狀態,只能全部關掉Labview,這樣的程式自已用就算了,拿給別人用一定被抱怨,請問有什麼方法可以解決這問題?
