| ▲ | mananaysiempre 2 hours ago | |||||||||||||||||||
> Kernel and low level stuff are actually very stable and good. In their intended applications, which might or might not be the ones you need. The slowness of the filesystem that necessitated a whole custom caching layer in Git for Windows, or the slowness of process creation that necessitated adding “picoprocesses” to the kernel so that WSL1 would perform acceptably and still wasn’t enough for it to survive, those are entirely due to the kernel’s archtecture. It’s not necessarily a huge deal that NT makes a bad substrate for Unix, even if POSIX support has been in the product requirements since before Win32 was conceived. I agree with the MSR paper[1] on fork(), for instance. But for a Unix-head, the “good” in your statement comes with important caveats. The filesystem is in particular so slow that Windows users will unironically claim that Ripgrep is slow and build their own NTFS parsers to sell as the fix[2]. [1] https://lwn.net/Articles/785430/ [2] https://nitter.net/CharlieMQV/status/1972647630653227054 | ||||||||||||||||||||
| ▲ | jph00 2 hours ago | parent | next [-] | |||||||||||||||||||
This is not due to slowness of the file system. Native ntfs tools are much faster than Unix ones in some situations. The issue is that running Unix software on windows will naturally have a performance impact. You see the same thing in reverse using Wine on Linux. Windows uses a different design for IO so requires software to be written with that design in mind. | ||||||||||||||||||||
| ||||||||||||||||||||
| ▲ | p_ing 2 hours ago | parent | prev | next [-] | |||||||||||||||||||
The file system isn't slow. The slowness will be present in any file system due to the file system filters that all file system calls pass though. | ||||||||||||||||||||
| ||||||||||||||||||||
| ▲ | dgxyz 2 hours ago | parent | prev [-] | |||||||||||||||||||
This is on the mark. But there's another issue which is what cripples windows for dev! NTFS has a terrible design flaw which is the fact that small files, under 640 bytes, are stored in the MFT. The MFT ends up having serious lock contention so lots of small file changes are slow. This screws up anything Unixy and git horribly. WSL1 was built on top of that problem which was one of the many reasons it was slow as molasses. Also why ReFS and "dev drive" exist... | ||||||||||||||||||||