サンプルコードとドキュメント

連続したメモリ領域のサイズを確認する

コードとドキュメント

添付

概要

この資料は、下記2点の資料について日本語でまとめたものとなります。

Community: Creating very large arrays in LabVIEW: Fragmented Array Library

Community: Query contiguous memory blocks in LabVIEW

詳細

LabVIEWに限らず、アプリケーションがメモリにデータを確保する際、連続したメモリ領域が必要となります。

例えば使用可能なメモリが1GBあっても、連続した最大領域が100MBしかない場合、

100MB分の配列しか使用できない場合があります。

Windowsのketnel32.dllへアクセスし、現在使用中のシステムでどの程度連続領域が使用できるか、

あらかじめ確認することが可能です。

Contiguous_Memory.png

まず添付の"Contiguous_mem_example.vi"を実行すると、上記の結果が得られます。

"Sizes of individual contiguous memory block"に、連続したメモリ領域のサイズが順番にリストされています。

このシステムでは、最大425.97Mのデータを確保できることになりますね。

実際に試してみましょう。I8データを配列で425.00M要素分確保すると、エラーは発生しません。

しかし上記最大データ数以上の426M要素を確保しようとすると、メモリフルのエラーが発生します。

425_00M.png

Full_Error.PNG

どの程度のサイズを確保できるか、添付のVIを用いることで確認頂くことが可能です。

必要なもの

ソフトウェア

LabVIEW 2014以降 (元ドキュメントではLabVIEW 2009以降)

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。

寄稿者