> You say in your bench that Dokan support does not support memory mapped files but it does as I can see with fsx (memory mapped read/write enabled)
It was me that ported FSX to windows so I am quite familiar with this test.
Here is the code that fails in fsbench:
Mapping = CreateFileMappingW(Handle, 0, PAGE_READWRITE, 0, FileSize, 0);
I would be happy if you explained to me how Dokany/MEMFS fails this code.
> You add lock (that will slow down the result) on Dokan implementation only https://github.com/billziss-gh/memfs-dokany/commit/03ebaebb1....
The lock exists on WinFsp/MEMFS. It is just taken in a different place:
https://github.com/billziss-gh/winfsp/blob/master/src/dll/fsop.c#L60
> After that you see that dokan is faster to list files (
https://github.com/billziss-gh/winfsp/commit/595a77bd2e45347...) You improve YOUR MEMFS winfsp implementation
https://github.com/billziss-gh/winfsp/commit/f7ca9f05221040a.... but not on dokan ?
The WinFsp/MEMFS had indeed a problem which I fixed, but it was not WinFsp related (it was MEMFS related - aka my test user mode file system). I attempted to apply the same fix to Dokany/MEMFS, but I could not because Dokany does not pass an Offset parameter to its FindFiles operation.
> You also improve memory allocation on winfsp memfs implementation and again not on dokan https://github.com/billziss-gh/winfsp/commit/d12234bb01b3620....
Actually that is incorrect.
https://github.com/billziss-gh/memfs-dokany/blob/master/memfs-dokany.cpp#L88
> My point is even if Winfsp is fast on your test with an unfair FS, I am pretty sure there is not difference with real applications on a non-virtual machine.
No. WinFsp is faster, because it is faster. Feel free to send me any pull requests that you want for Dokany/MEMFS and I will incorporate them into the project and re-run the tests.