在TDMS文件I/O操作中,LabVIEW写入TDMS文件的数据停留在缓存区,直至缓存区填满或用户关闭文件。缓存可发生在通道层、操作系统(OS)文件系统或TDMS磁盘缓存。

下图介绍了标准TDMS VI的TDMS文件缓存。

注: 对于高级TDMSVI和函数,缓存仅发生在OS文件系统。如禁用缓存?输入为TRUE,则不再任何层发生缓存。

缓存发生的层取决于用户对TDMS设置属性函数中设置的属性。例如,NI_MinimumBufferSize属性判定通道层发生缓存的数据采样数量。TDMS函数的禁用缓存?输入判定LabVIEW是否禁用系统缓存,系统缓存发生在OS层。如禁用缓存?输入为TRUE,LabVIEW将禁用系统缓存,缓存发生在TDMS磁盘缓存。NI_DiskCacheSize属性判定TDMS磁盘缓存分配为数据的缓存空间大小。仅当禁用缓存?输入为TRUE,该属性有效。

如要直接写入全部缓存至TDMS文件,请使用TDMS刷新函数。

注:NI_MinimumBufferSizeNI_DiskCacheSize属性不适用于高级TDMS VI和函数。

禁用缓存

在下列场景可能希望禁用缓存,提高数据传输速度:

  • 需读取或写入较大的采样。
  • 需要读取或写入来自不同采样的大量数据。
  • 使用冗余磁盘阵列(RAID)加快处理速度。RAID是一组硬盘,操作系统可像访问一个硬盘一样同时访问这组磁盘,读写数据消耗的时间更少。如访问启用了缓存技术的RAID,LabVIEW将数据复制到操作系统的时间比操作系统实际上将数据写入磁盘的时间更长。

相关信息

缓存数据

文件缓存

标准和高级TDMS函数