在每次文件I/O操作中,LabVIEW调用操作系统(OS)并请求在文件和磁盘之间传输数据,调用时间为几个毫秒。LabVIEW每次调用操作系统,毫秒值进行累积。要避免这些时间重复,多数操作系统的文件系统有一个缓存区,用于暂时存储要写入文件或从文件中读取的数据。缓存区存满后,操作系统将进行一次文件I/O操作。

上一章节中提及的进程称为缓存,默认状态下LabVIEW启用缓存。缓存减少了操作系统访问磁盘的次数并减少了处理时间。

禁用缓存

有些情况下禁用缓存,可加快流盘的处理速度。例如,可使用冗余独立磁盘阵列(RAID)加快处理速度。RAID是一组硬盘,操作系统可像访问一个硬盘一样同时访问这组磁盘,读写数据消耗的时间更少。如访问启用了缓存技术的RAID,LabVIEW将数据复制到操作系统的时间比操作系统实际上将数据写入磁盘的时间更长。通过禁用“打开/创建/替换文件”函数的禁用缓存输入端,可避免这些数据副本并强制操作系统直接将数据发送到磁盘。

但禁用缓存时,必须满足下列条件:

  • 必须保证文件中数据的大小是存储文件的磁盘区大小的整数倍,以字节为单位。扇区是上存储固定数量数据的磁盘空间,通常为512字节。可使用获取卷信息函数的扇区大小(字节)输出端确定磁盘上扇区的大小。LabVIEW保存数据至磁盘时,数据可存储在若干扇区上,但必须填满每个扇区。512字节的扇区需512字节的数据才能填满。如数据不是扇区大小的整数倍,必须用过滤数据填充这些数据,LabVIEW再次读取文件前需将这些过滤数据删除。
  • 文件中的数据必须与磁盘对齐点的整数倍对齐。LabVIEW会对齐数据,用户不可更改数据对齐。如数据未达到对齐要求,LabVIEW将返回一个错误。用户必须启用缓存,并重新打开文件。

相关信息

缓存数据