TDMSファイルでのファイルバッファリング
- 更新日2025-08-27
- 3分で読める
TDMSファイルI/O操作時、LabVIEWがTDMSファイルに書き込むデータは、バッファが一杯になるか、ファイルが閉じられるまで、バッファ内に格納されます。バッファリングは、オペレーティングシステム (OS) ファイルシステムのチャンネル層またはTDMSディスクキャッシュ内で発生します。
下図は、標準TDMS VIでのTDMSファイルのバッファリングを表しています。
バッファリングが発生する層は、「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が実際にデータをディスクに書き込む時間よりも長くなる場合があります。