天天看點

在LabVIEW中高效使用記憶體VI記憶體使用在32位Windows作業系統上擴充虛拟記憶體使用

本文來自LabVIEW自帶幫助檔案中的節選。想細緻研究的朋友,可以在LabVIEW的幫助檔案的索引中輸入關鍵字“記憶體使用”進行搜尋,并找到本文的全部内容。

VI記憶體使用

LabVIEW可處理大量在文本程式設計語言中必須由使用者處理的細節。文本程式設計語言的一大挑戰是記憶體的使用。在文本程式設計語言中,程式設計者必須在記憶體使用的前後配置設定及釋放記憶體。同時,程式設計者必須注意所寫入資料不得超過已配置設定的記憶體容量。是以,對于使用文本程式設計語言的程式設計者來說,最大問題之一是無法配置設定記憶體或配置設定足夠的記憶體。記憶體配置設定不當也是很難調試的問題。

LabVIEW的資料流模式解決了記憶體管理中的諸多難題。在LabVIEW中無需配置設定變量或為變量指派。使用者隻需建立帶有連線的程式框圖來表示資料的傳輸。

生成資料的函數将配置設定用于儲存資料的空間。當資料不再使用,其占用的記憶體将被釋放。向數組或字元串添加新資料時,LabVIEW将自動配置設定足夠的記憶體來管理這些新資料。

這種自動的記憶體處理功能是LabVIEW的一大特色。然而,自動處理的特性也使使用者無法控制其開始的時間。在程式處理大宗資料時,使用者也應了解記憶體配置設定的發生時機。了解相關的原則有利于使用者編寫出占用記憶體更少的程式。同時,由于記憶體配置設定和資料複制會占用大量執行時間,了解如何盡可能降低記憶體占用也有利于提高VI的執行速度。

高效使用記憶體的規則

上節内容的要點在于編譯器智能地作出重複使用記憶體的決策。編譯器何時能複用記憶體何時不能複用的規則更為複雜。以下規則有助于在實際操作中建立能高效使用記憶體的VI:

  • 将VI分為若幹子VI一般不影響記憶體的使用。在多數情況下,記憶體使用效率将提高,這是由于子VI不運作時執行系統可取回該子VI所占用的資料記憶體。
  • 隻有當标量過多時才會對記憶體使用産生負面影響,故無須太介意标量值資料副本的存在。
  • 使用數組或字元串時,請不要濫用全局變量和局部變量。讀取全局或局部變量時,LabVIEW都會生成資料副本。
  • 如無必要,不要在前面闆上顯示大型的數組或字元串。前面闆上的輸入控件和顯示控件會為其顯示的資料儲存一份資料副本。
在LabVIEW中高效使用記憶體VI記憶體使用在32位Windows作業系統上擴充虛拟記憶體使用
提示:  如要用到圖表顯示控件,需注意圖表将保留其顯示的曆史資料。圖表曆史中存滿曆史資料後,LabVIEW将停止占用記憶體。VI重新運作時,LabVIEW不會自動清除圖表曆史。是以,在程式執行過程中,需清除圖表的曆史資料。可将空數組寫入圖表的曆史資料屬性節點。
  • 延遲前面闆更新屬性。将該屬性設定為TRUE時,即使控件的值被改變,前面闆顯示控制器的值也不會改變。作業系統無須使用任何記憶體為輸入控件填充新的值。
在LabVIEW中高效使用記憶體VI記憶體使用在32位Windows作業系統上擴充虛拟記憶體使用
注:  LabVIEW通常不會在調用子VI時打開子VI的前面闆。
  • 如并不打算顯示子VI的前面闆,那麼不要将未使用的屬性節點留在子VI上。屬性節點将導緻子VI的前面闆被保留在記憶體中,造成不必要的記憶體占用。
  • 設計程式框圖時,應注意輸入與輸出大小不同的情況。例如,如使用建立數組或連接配接字元串函數而使數組或字元串的尺寸被頻繁擴大,那麼這些數組或字元串将産生其資料副本。
  • 在數組中使用一緻的資料類型并在數組将資料傳遞到子VI和函數時監視強制轉換點。當資料類型被改變時,執行系統将為其複制一份資料。
  • 不要使用複雜和階層化的資料結構,如含有大型數組或字元串的簇或簇數組。這将占用更多的記憶體。應盡可能使用更高效的資料類型。
  • 如無必要,不要使用透明或重疊的前面闆對象。這樣的對象可能會占用更多記憶體。

虛拟記憶體

在32位Windows作業系統上擴充虛拟記憶體使用

LabVIEW可通路大位址,可利用3 GB的虛拟記憶體。LabVIEW預設情況下可通路2 GB的虛拟記憶體。要使用更多的虛拟記憶體,必須修改Windows的啟動配置設定。Windows 7和Windows Vista将啟動設定儲存在相同的位置,Windows XP則有所不同。本文檔介紹在不同的Windows作業系統上修改啟動配置的步驟。

在LabVIEW中高效使用記憶體VI記憶體使用在32位Windows作業系統上擴充虛拟記憶體使用
注:   在64位Windows作業系統上,預設情況下,LabVIEW可通路4 GB的虛拟記憶體。在64位的Windows作業系統上,不需進行任何操作,LabVIEW就能通路4GB的虛拟記憶體。

使LabVIEW能在Windows 7和Windows Vista上使用3 GB虛拟記憶體

(Windows 7/Vista) 按照下列步驟,修改Windows啟動配置設定,使LabVIEW能夠通路3 GB虛拟記憶體。

  1. 以管理者身份打開指令提示符視窗。
    1. 在Windows開始菜單中找到指令提示符程式。
    2. 右鍵單擊程式名稱,從快捷菜單中選擇以管理者身份運作。
    3. 如出現提示對話框,輸入Windows管理者使用者名和密碼。如已登入為Windows管理者,在出現的對話框中單擊繼續按鈕。隻有管理者才可以修改啟動配置設定。
  2. 輸入指令bcdedit /enum,然後按 <Enter>鍵,顯示啟動配置資料(BCD)存儲的條目。這些設定控制如何啟動作業系統。
  3. 輸入指令bcdedit /set increaseuserva 3072,然後按<Enter>鍵。該指令将作業系統配置設定的虛拟記憶體增加至3072MB,即3GB。
  4. 重新開機系統,使BCD的改動生效。

使LabVIEW能在Windows XP上使用3 GB虛拟記憶體

(Windows XP) 按照下列步驟,修改Windows啟動配置設定,使LabVIEW能夠通路3 GB虛拟記憶體。

  1. 找到Windows的boot.ini檔案。Widnows将該檔案儲存在C槽。隻有将Windows浏覽器配置為顯示系統檔案,才能看到該檔案。如沒有在C:/目錄下找到boot.ini檔案,則完成下列步驟。
    1. 在Windows浏覽器中,在位址欄輸入C:/boot.ini。
    2. boot.ini檔案将在預設的文本編輯器中打開。
  2. 儲存boot.ini的備份至作業系統之外的目錄。
  3. 在原來的boot.ini檔案中,找到Windows啟動的相關行。該行在Windows XP作業系統上可能為:

    [operating systems]

    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn /3GB

  4. 将标簽/3GB添加在行末。該标簽意味着作業系統的核心,即核心元件,使用1GB虛拟記憶體,其餘3GB虛拟記憶體用于應用程式。
  5. 儲存并關閉boot.ini檔案。
  6. 重新開機系統,使boot.ini檔案的改動生效。

繼續閱讀