取势 明道 优术

作者为 发表

Windows

Vista彻底结束了系统可以安装在FAT32分区的历史,全面转向NTFS.NTFS的复杂性和微软贫乏的开发档案资料,微软企图以此阻止开发人员对

NTFS读取写入软件的开发.这种封闭取得了一定效果,Linux也确实在很长一段时间内不能安全地将文件写入NTFS分区.但是,2007年2月20

日,NTFS-3G发布1.0稳定版,实现了非Windows系统下对NTFS的完美读写操作,微软的NTFS终于在开源社区前折戟.

  NTFS的优点众多,其中包括了更高效的文件读取速度.笔者亲历亲为,测试了几种情况下Windows

Vista和Linux向USB移动硬盘拷贝同一文件的时间.

  硬件环境

  神舟天运L710R

  处理器: Intel Core2 Duo(Merom) T7100(1.8G)

  显示芯片:集成Intel GMA X3100

  内存容量:DDR2 1G*2

  硬盘容量:日立 100G 5400rpm

  移动硬盘:纽曼Mini Card(东芝1.8英寸 20GB 5400rpm)

  操作系统

  ①Windows Vista Ultimate简体中文版(包括了与提高USB存储设备速度有关的更新KB 938979)

  Vista下不能直接识别Linux系统的EXT3分区.笔者通过安装Ext2 Installable File System For

Windows(http://www.fs-driver.org/)实现了将EXT3分区的读写,成为”计算机”中的盘符,与资源管理器整合.

  该软件并不能直接在Vista下安装,需要将安装程序设置为”Windows XP sp2兼容模式下运行”才能成功.

  ②openSUSE 10.3 x86-64

  最近的Linux发行版大都集成了NTFS-3G(http://www.ntfs-3g.org/index.html),用户也可以自行下载安装.

  测试

  笔者将测试分为三组进行,过程都是向移动硬盘中拷贝一个2.65GB的iso镜像文件.

  ㈠从NTFS分区将文件拷贝到格式化为NTFS文件系统的移动硬盘

  在Windows Vista下,笔者通过批处理文件(bat),来计量所需的时间,代码为:

  @echo off

  set /a StartS=%time:~6,2%

  set /a StartM=%time:~3,2%

  echo 开始时间:%time%

  copy (源文件路径) (目标文件路径)

  set /a EndS=%time:~6,2%

  set /a EndM=%time:~3,2%

  echo 结束时间:%time%

  set /a diffS_=%EndS%-%StartS%

  set /a diffM_=%EndM%-%StartM%

  echo 程序运行时间: %diffM_%分钟%diffS_%秒

  输出结果如下图:

  在Suse Linux下,笔者在终端输入:

  time cp (源文件路径) (目标文件路径)

  输出结果如下图:

  ㈡从EXT3分区将文件拷贝到格式化为NTFS文件系统的移动硬盘

  Vista下输出结果:

  此次测试完成后,重启进入Suse Linux时出现了检查修复文件系统的过程.

  Suse Linux下输出结果:

  ㈢从NTFS分区将文件拷贝到格式化为EXT3文件系统的移动硬盘

  在Linux下,进入root用户,将移动硬盘格式化为EXT3,并给予”一般用户”写入的权限.

  Vista下输出结果:

  Suse Linux下输出结果:

  数据整理如下:

Vista Suse
NTFS到NTFS 4分 2秒 2分54秒
EXT3到NTFS 3分16秒 2分17秒
NTFS到EXT3 3分 8秒 2分18秒

  总结

  笔者至少得出三点结论:

  ①在各组测试中,Linux下的速度均大幅领先Vista;

  ②在Vista下,通过第三方软件,进行EXT3分区和NTFS分区间文件的传输,速度也要高过两个NTFS分区之间的传输;

  ③虽然Linux下写入NTFS分区的速度比Vista要快,但是仍然没有超过Linux下写入EXT3分区的速度.

  这个结果多少令笔者有些诧异!微软开发并封闭技术细节的NTFS,被开源社区成功地翻越,并且实现了更高的速度.



在稳定的NTFS-3G出现之前,面对Windows和Linux双系统的情况,笔者通常划分一个小的FAT32分区,来实现文件的交换,但现在,这个做法已经没有必要,完全可以通过直接读写NTFS分区来实现文件交换.

来了就留个评论吧! 没有评论