* Do you have active snapshots (vssadmin list shadows)? Halves random writes to disk in the worst case.
* Do you have USN journaling enabled (fsutil usn queryjournal c:)? Adds extra IO to meta-data operations.
* NTFS/FAT is optimized for fast directory listing speed so modifying files also modifies directory entries. Nothing one can do about that (except being aware of that and designing programs with this in mind).
* Windows doesn't keep as much dirty fs data in fs-cache. I know of no way to change that. One can probably, if one uses a Windows Server OS.
* Is a on-access Virus scanner active? If yes, one cannot compare performance to Linux. It's a massive bottleneck.
Windows Defender will normally be active by default on Windows 10 unless you go out of your way to turn it off.
sc config WinDefend start= disabled
sc stop WinDefendwsl-terminal works for me.
Would it be possible to mount the folders with the code on RAM? They aren't, usually, very heavy. May be a small-ish 500mb volume on RAM could help? Is this even possible on WSL/Windows?
In contrast, while metadata performance is sluggish in NTFS, at least a few years ago there were ways to get better large transaction async file performance than ext4 if you knew what you were doing -- clearly that workload was something that customers had asked for.
The performance bottlenecks I hit seem to be disk i/o related. Things from path tab completion on the command line, to Vim's YouCompleteMe compiling code in the background, to a plain "git status", are just painfully slow right now.
If Microsoft can fix these performance issues, and someone ships a better terminal replacement (currently using ConEmu, also has issues), developing on Windows would be almost painless for Linux users (after learning how to integrate projects with Visual Studio...though I've read VS 2017 has better cmake integration).