Open scottweedon opened 5 years ago
Do you know what exactly is slow?
I assume you create reparse points using similar code: https://github.com/aleksk/LazyCopy/blob/a5334b0aeb7507e1fcc305fd9e3ac5a28fef9d7e/ToolsAndLibraries/SampleClient/Program.cs#L56 Driver can either ask c# service to open the file and then fetch it, or let c# to write content to the file (driver lets such I/O through). Unlike the GitVFS, this service doesn't pass the data back to driver for it to write.
Network path is not optimized there, but I would try:
If you scenario is similar to the following: Build system produces bin output. You create reparse files on test machines and let them lazily download those files while they are executing tests.
This is always a cache-miss. In such cases I usually have an abstraction on top of it that prefetches (just file.open stubs so driver downloads) files that are most likely to be used by the app. You can use those ETW file access logs to build a recommender system. https://github.com/aleksk/LazyCopy/tree/master/ToolsAndLibraries/EventTracing
When accessing placeholder files across a mapped drive or UNC share, the usermode service takes a long time to write to the target file.
This only occurs when accessing source items that are not local.