Windows具有更好的文件系统


14

根据我在Windows工作站上工作的Java开发人员的观察,与Linux文件系统相比,NTFS的速度较慢。问题是,NTFS驱动程序中是否可以手动调整任何内容,例如为其提供更多的内存以进行缓存?启用一些实验性算法?如果不可用,是否可能有比Windows NTFS更快的其他文件系统可以在Windows上使用,甚至可以在商业上使用?

需要明确的是,我并不想提高Maven项目的编译速度,而是希望对OS进行整体改进。与Linux文件系统相比,我感觉NTFS早已过时且运行缓慢。奇怪的是,这个星球上最流行的OS只有一个文件系统,仍然需要手动碎片整理,这让我感到很奇怪。也许,一种替代?

更新:根据我的观察,这很慢。我正在构建/打包一个项目,这意味着在磁盘上进行许多读/写操作。构建系统是跨平台的(Java,Maven),因此,例如,在启动到Ubuntu时,我可以执行完全相同的操作。

在Linux上,我的构建至少快1/3。因此,有关文件系统的问题。很抱歉,如果放错地方了。


7
NTFS以哪种方式变慢?您如何测量它的速度以知道它在完全相同的操作下比任何其他文件系统都要慢?NTFS是Windows本身可以从中引导的唯一本地支持的文件系统(除了FAT有局限性),尽管我相信您可以为非引导分区获得ext3文件系统驱动程序。
Mokubai

是的,请告诉我们,NTFS的速度如何?
JL。

1
但是这里的问题是什么?是如何加快NTFS速度,还是Windows是否可以使用其他文件系统?
Ivo Flipse'2

1
@ ivo-flipse:很抱歉在这里引起混乱,我有兴趣学习有关这两个问题的知识。就像,在Windows上,没有成熟的替代NTFS的替代方法吗?如果不是,是否有可能总体上提高NTFS的性能,例如为某些缓存提供更多内存或启用某些实验性机制?
Yuri Ushakov

1
@ sinni800这只是垃圾,对不起。尽管我承认,Linux作为台式机操作系统远非完美,但作为服务器操作系统,Linux在几乎所有工作负载方面都比Windows更好。毫无疑问,前100万个网站中有96.6%使用Beta质量操作系统。
mjaggard's

Answers:


3

虽然我很想看到类似ZFS的东西可用于Windows主机,但是NTFS并不是一个可怕的文件系统。它支持大多数“现代”文件系统功能(扩展属性,日记功能,ACL,您可以将其命名),但是它受到资源管理器和不支持这些功能的大多数其他应用程序的阻碍。

绝对会破坏其性能的一件事是目录中的条目“太多”。一旦在一个目录中传递了数千个条目,一切都会变慢。从字面上看,当发生这种情况时,整个计算机将停止等待NTFS创建或删除条目。

我曾经使用过为.NET程序集生成基于HTML的文档的应用程序;它将为每个属性,方法,类,名称空间等创建一个文件。对于较大的程序集,我们将看到20 + k个文件,所有文件都很好地转储到一个目录中。在NTFS上阻止构建的过程中,机器将花费几个小时。

从理论上讲,Windows支持文件系统插件,这将使本机ZFS,ext3或其他(甚至FUSE)成为可能。实际上,这些API没有文档说明,因此您完全是自己一个人。

现在,由于您正在进行Java开发,是否可以在计算机上安装其他操作系统,或在Windows之上使用VM?

另外,您可能想尝试一些与平台无关的文件系统基准测试(iozone,bonnie ...可能还有一些我不知道的更现代的基准,也许甚至有一些用Java编写的基准),看看是否实际上是阻止您的文件系统,还是其他原因。过早的优化以及所有这些...


可安装文件系统至少从2000年以来就得到了文档记录。缺少插件总是导致困难和缺乏兴趣。仍然很困难,但是现在可以使用FUSE和FSDK。
user165568

5
  • 关闭上次访问时间
  • 关闭短文件名
  • 关闭删除通知
  • 关闭索引
  • 禁用新闻发布
  • 禁用卷影副本和以前的版本以及配额和共享。
  • 启用旁路遍历检查

我想真正的解决方案是重写您的构建系统,以便它使用本机Windows文件系统API,而不是可移植性框架下的unix API(fopen等)本身。但这不会发生,因此基本上您会陷入他们认为可接受的任何性能水平。

通常,在使用并非最初为Windows编写的系统时,您会发现目录遍历处理得很差,因此请确保目录树非常平坦。


1
如果它提供了更多信息,这将是一个更好的答案。1.某种度量每个度量可以节省多少时间。2.如何进行这些更改。
mjaggard's

3

新的Windows操作系统支持一种文件系统,并且比NTFS更快。这是exFAT。可以将其用于系统驱动器。但尚不清楚它可能带来什么并发症。

您当然可以将其用于其他分区。使用随机读/写操作更快。例如,完美适用于SSD。


1
刚刚尝试过,而exFAT似乎更慢。首先基于NTFS:36.083s,第二:19.884s。首先基于exFAT:41.160s,第二:27.291s。
Yuri Ushakov

嗯 exFAT是Windows目前唯一支持的其他文件系统,可以将其用作系统驱动器(存在权限)。我曾经在网上看到一个测试,它说exFAT随机读取速度更快。
sinni800 2011年

测试说exFAT更快的原因可能是因为他们没有在包含> 32768条目的目录上对其进行测试。此外,由于内部更改,较新版本的Windows可能会进一步放慢速度。上帝(MS)知道opendir()(或等效)呼叫中会发生什么。
MattBianco

2

您是否正在运行防病毒程序,该程序正在对项目文件夹进行访问/写入检查?

编译涉及快速连续读取和写入许多小文件,这可能会使病毒扫描程序不堪重负。将您的项目文件夹添加到排除的文件夹列表中,看看是否可以改善情况。

在Linux上,您(可能)没有任何防病毒软件。


Defender已关闭,AV已关闭(或视情况完全卸载)。
Yuri Ushakov

@Yuri-哦,很好。
ChrisF 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.