如何改善我的 LabVIEW VI 的記憶體使用量?
主要軟體:
主要軟體版本: 1.0
主要軟體修正版本: N/A
次要軟體: N/A
問題: 我目前在撰寫一個大的 VI 程式並且想要最佳化電腦的記憶體使用上。有什麼準則我應該在撰寫過程中注意的?
解答: 以下的清單列出了一些撰寫的準則。雖然他們不是唯一的考量,這些準則是不錯的出發點。
- 若可行的話,將 VI 分散成 subVI。LabVIEW 可以將沒有執行的 SubVI 所使用的記憶體釋放出來作為使用。
- 避免使用 Global 及 Local 變數。LabVIEW 在使用 Global 和 Local 變數時會複製出多份拷貝。
- 除非必要,避免在 Front Panel 顯示大型陣列及文字字串。Front Panel 的 Indicator 會將顯示的資料在記憶體中複製一份。
- LabVIEW 會利用 control panel 中的資訊來決定最佳化的步驟。若您需要將在 Front Panel 上置放陣列,將它們連接到 connector pane 或許可以降低 buffer allocation 的。用 show buffer allocations tool 來判斷 buffer allocation 用於哪些地方。
- Property Node 會導致 SubVI 的 Front Panel 駐留於記憶體裡,增加記憶體使用量。所以若 SubVI 的 Front Panel 並沒有顯示時,請勿留著沒使用到的 Property Node 於該 SubVI。
- 使用陣列時,以及傳遞資料給不同 SubVIs 以及 function時注意資料轉換的紅色 coercion dot。由於LabVIEW 執行資料轉換時會產生出新的緩衝區,建議保持一致的資料型態。
- 當撰寫程式時,注意輸入端及輸出端是否為同樣的資料大小。若頻繁地增加陣列或是字串大小會產生出許多份資料拷貝,導致 LabVIEW 必須增加記憶體配置。這也會導致記憶體斷續。
欲得知更多改善 LabVIEW VI 效能的資料,可以參考以下的連接。
相關連結: LabVIEW Help: VI Memory UsageKnowledgeBase 2ZHD73IP: How Do I Use the VI Profile Window?KnowledgeBase 2XQEOODT: Determining When and Where LabVIEW Allocates a New Buffer
附加檔案:
報告日期: 01/10/2003
最後更新: 12/28/2011
文件偏號: 2T9ICKTL
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.