TDMSファイルI/O操作時、LabVIEWがTDMSファイルに書き込むデータは、バッファが一杯になるか、ファイルが閉じられるまで、バッファ内に格納されます。バッファリングは、オペレーティングシステム (OS) ファイルシステムのチャンネル層またはTDMSディスクキャッシュ内で発生します。

下図は、標準TDMS VIでのTDMSファイルのバッファリングを表しています。

メモ 上級TDMS VIおよび関数では、バッファリングはOSファイルシステム内でのみ発生します。バッファを無効?入力がTRUEの場合、バッファリングはどの層でも発生しません。

バッファリングが発生する層は、「TDMSプロパティを設定」関数を使用して設定したプロパティに依存する場合があります。たとえば、NI_MinimumBufferSizeプロパティは、チャンネル層でバッファリングするデータサンプル数を決めます。TDMS関数のバッファを無効?入力により、LabVIEWがシステムバッファリング (OSで発生する) を無効にするかどうかが決まります。バッファを無効?入力がTRUEの場合、システムバッファリングが無効になり、バッファリングはTDMSディスクキャッシュで発生します。NI_DiskCacheSizeプロパティにより、データ用に割り当てられるTDMSディスクキャッシュのキャッシュサイズの量が決まります。このプロパティは、バッファを無効?入力がTRUEの場合に有効です。

すべてのバッファを直接TDMSファイルに書き込むには、「TDMSを更新」関数を使用します。

メモ NI_MinimumBufferSizeプロパティとNI_DiskCacheSizeプロパティは、上級TDMS VIおよび関数には適用されません。

バッファリングを無効にすべき場合

以下の場合には、データ転送の速度を上げるためにバッファリングを無効にすることを検討してください。

  • 大きなサンプルサイズを読み書きしたい場合
  • 別のサンプルから大量のデータを読み書きしたい場合。
  • 処理速度を向上させるために、RAID (Redundant Array of Independent Disks) を使用する場合。RAIDは、OSが同時にアクセスできる単一のディスクとして動作するハードディスクのセットで、これにより、データの読み書きにかかる時間が削減されます。バッファリングが有効な設定でRAIDにアクセスする場合、LabVIEWがデータをコピーするのにかかる時間はOSが実際にデータをディスクに書き込む時間よりも長くなる場合があります。

関連情報

データをバッファリングする

ファイルのバッファ処理

標準と上級のTDMS関数の違い