沒有足夠的記憶體來完成此操作所造成的錯誤

更新 Nov 7, 2023

產品資訊

軟體

  • LabVIEW FPGA Module
  • LabVIEW

問題敘述

  • 我正在使用帶有 DRAM 的 FPGA target。當我嘗試在我的 LabVIEW 專案中模擬DRAM 時,我收到下列錯誤:Not enough memory to complete this operation.
  • 我正在使用記憶體有限的電腦並嘗試將大量資料儲存在一個陣列中(例如 4000 萬個資料點)。執行程式碼一段時間後,我收到錯誤: Not enough memory to complete this operation. 我該如何解決此錯誤?

解決方案

  1. 確保您的電腦和 LabVIEW 都在其記憶體限制範圍內。請參考LabVIEW 記憶體分配文件以確定 LabVIEW 是否在其記憶體限制範圍內。
  2. 如果它們都在限制範圍內,請減小模擬 DRAM 的大小,使其小於 2 GB。減少請求的number of elements(如下圖所示)或切換到更小的資料類型。
  1. 增加 Windows 機器的虛擬記憶體
  2. 如果您在將資料讀取到 LabVIEW 時遇到此錯誤,請嘗試一次讀取較少的資料或更頻繁地讀取資料。

相關資訊

如果您不熟悉使用 LabVIEW 在 FPGA 上進行程式編寫,那麼可以閱讀NI LabVIEW 高效能 FPGA 開發人員指南。由於在使用 FPGA 時未遵循最佳實踐,可能會發生此錯誤。例如,使用大量的前面板專案,如指標和圖表。

LabVIEW 中存在一個已知問題,即模擬超過 2 GB 的 DRAM 會導致記憶體錯誤。它與LabVIEW的記憶體限制無關,因此即使LabVIEW沒有耗盡記憶體也會發生。

此外,您可以使用Performance Profiler來跟踪導致記憶體增長的程式。考慮減少該 VI 中產生的資料,將架構更改為更高效的架構,例如Producer/Consumer等。