我编写了一个特定的图像处理算法,它大量使用imwrite
和imread
。以下示例将在启用超线程的 6 核 i7 机器上同时在八个 Matlab 会话上运行。(每个会话的文件名不同。)
tic;
for i=1:1000
%a processing operation will be put here%
imwrite(imgarray,temp,'Quality',100);
imgarray=imread(temp);
end
toc;
我temp=[ramdrive_loc temp];
出于两个目的考虑更改示例代码:
- 减少时间消耗
- 降低硬盘磨损
创建的图像文件大小约为 1 Mb。硬盘驱动器组成 RAID0,带有 2 x 7.2k Caviar Blacks。该机器是 Windows 机器,其中的分区被格式化为 NTFS。
上面的输出toc
是(不处理图像):
没有Ramdisk:104.330466 秒。
使用Ramdisk:106.100880 秒。
有什么导致我没有获得任何速度?将ramdisk的文件系统更改为FAT32有帮助吗?
注意:还有其他关于 ramdisk 与硬盘比较的问题;但是这个问题主要是关于imread
、imwrite
和 Matlab I/O 的。
补充: ram 盘是通过 SoftPerfect 的免费软件设置的。它有 3gb 的空间,对于任务来说绰绰有余(在 Matlab 会话期间,最多可以生成和写入 10mb)。