|
下面有一個範例可以用來觀察陣列資料在記憶體的配置方式:
1) 關閉所有已開啟的VI,但是不關閉LabVIEW。
2) 開啟下方附件範例"Two Copies in Memory.vi",但是先不要做執行的動作。
3) 打開Windows的工作管理員,同時觀察LabVIEW執行時所佔用的記憶體數目。
4) 以預設的設定值執行範例程式,可以觀察到記憶體的使用增加了20 Mb。在預設的陣列大小設定下,會產生1276900個8位元長度的雙浮點數,其總容量為10 Mb。由於這個陣列在記憶體有兩份空間,所以記憶體的總使用量為20 MB。
另一個觀察記憶體使用空間的方法是開啟LabVIEW中的buffer allocations window,其位於Tools » Advanced » Show Buffer Allocations。從程式區中你可以看到一份記憶體空間是屬於移位暫存器而另一份是屬於"Initialize Array.vi"。
如果要指定陣列的型態,可以使用"Reshape Array.vi"來代替"Initialize Array.vi"。利用這個方法,可以永遠都只用既存的陣列資料來做相對應的程式運算而無須再替陣列資料創造第二份記憶體空間。
要實現上述的方法,可以參照下面的範例:
1) 關閉所有已開啟的VI,但是不要關閉 LabVIEW。
2) 開啟附件範例程式"One Copy in Memory.vi",但先不要做執行的動作。
3) 打開Windows的工作管理員,同時觀察LabVIEW執行時所佔用的記憶體空間。
4) 使用預設的設定值執行範例程式,可以觀察到記憶體的使用空間只增加10 Mb。在這個範例中,資料陣列只在記憶體佔有一份空間。
也開啟LabVIEW中的buffer allocations window,位於Tools » Advanced » Show Buffer Allocations。從程式區可以看到只有一份陣列記憶體空間,且其屬於移位暫存器。
|