Unacceptably slow shared folders performance

This post was originally published on this site

I have a MacBook Pro 15″ late-2013 with a 512 GB SSD, 16 GB RAM and a Core i7 2.6 GHz CPU, running VMware Fusion 8. The host OS is OS X 10.10.5 (Yosemite) and the guest OS is Windows 10. My main use case for the VM is software development, and I have Microsoft Visual Studio 2015 installed on it, on which I use a plugin called VisualGDB (www.visualgdb.com), and there is a severe performance issue with my setup, which is severely dragging down my productivity. Here I should mention this is definitely not an issue with VisualGDB itself, and would most likely happen just the same with ordinary Visual Studio projects, it’s just that I don’t code in C# or VB to test a project in one of those languages.

 

Using VMware’s built in sharing facilities, I shared my home folder from the host OS to the guest OS. I keep all my software projects in my host OS’s home folder, and I access it from within Visual Studio using the shared folder.

 

The issue is this: performing a rebuild (Build menu -> Rebuild Solution in Visual Studio) of one of my projects over the shared folder takes 38 seconds (in another test, this took as long as 48 seconds; of which 15 seconds are spent just cleaning the project folder, which consists solely of deleting a number of files that’s not more than a hundred). Now if I copy the project folder somewhere inside the Windows C: drive and perform the same rebuild when opening the project from there, it takes less than 7 seconds. The funny thing is that copying the project from my shared folder to the Windows C: drive takes about a second or two, I can’t even time it accurately — so why should accessing the same files from within VS be so slow? This is a 5.5x difference and is making me lose something in the vicinity of one hour every day waiting for compiles to finish. Even creating a network share from within Mac OS X (System Preferences -> Sharing -> File Sharing) is much faster than this at about 12 seconds; this is my preferred solution for now, but frankly I don’t see just deleting less than a hundred .o files and reading in another hundred .c files should take an extra 6 seconds just because the file is on a shared folder (which is, of course, accessed over a loopback connection, so that no bytes are ever put on a physical wire, and the latency can probably be measured in microseconds).

 

Please note that, for various reasons related to my split Windows-Mac workflow, just copying the files to the C: drive instead of accessing them via the shared folder is not an acceptable solution. They must be kept in the shared folder at all times.

 

Are there any settings changes, or in general anything that I can do to speed up I/O operations on shared folders?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.