Comment by lc64

2 years ago

That's a very rigorously written article.

Let's also note the 4x speed increase on windows 10, once again underlining just how slow windows filesystem calls are, when compared to direct access, and other (kernel, filesystem) combinations.

maybe the malware detection program adds to the performance as well

  • NTFS is really horrible handling many small files. When compiling/watching node modules (easily 10-100k files), we've seen a 10x size difference internally (same hardware, just different OSes). At some point that meant a compile time difference of 10-30 sec vs 6-10 min. Not fun.

    • NTFS is perfectly fine at handling small files and performs on-par with other modern file systems.

      The issue is Defender in sync mode/other AV/other file system filters.

      DevDrive as noted by default uses an async scanning technique as well as ReFS. ReFS will suffer the exact same performance issues with Defender (or other AV/other file system filters) doing its thing when running in sync mode, which it does by default for ReFS-formatted drives in Windows Server.

      https://news.ycombinator.com/item?id=26737521

      > Except for CloseHandle(). These calls were often taking 1-10+ milliseconds to complete.

      > While I didn't realize it at the time, the cause for this was/is Windows Defender. Windows Defender (and other anti-virus / scanning software) typically work on Windows by installing what's called a filesystem filter driver.

      This doesn't take away from your point that _it is slow_, but the reasons are not due to the file system in use.

      14 replies →

    • > NTFS is really horrible handling many small files.

      To pile onto NTFS, it's performance is so notoriously bad that there are developer teams working on Windows projects that configure their build farm to do cross builds from Linux to Windows just to avoid the performance penalty.

      30 replies →

  • Their "windows dev drive" setup addresses this. I haven't tested it myself but I saw a couple of inexpertly executed tests showing significant performance gains. I honestly have no idea if my compile times are quicker.