Early last year, the company announced the Git Virtual File System (GVFS), an open source system designed to operate Git at enterprise-scale. It was a part of the company’s effort to scale Git on Visual Studio Team Services. Throughout the the year, the company was able to sleep up the performance of GVFS by 20-30 percent to 50-60 percent and 90 percent in some instances.
“The Windows repository is larger than any other Git repository by orders of magnitude, and that exposed a few performance issues in core Git that we needed to fix to make it work with the large repositories we see at Microsoft. Thanks to Git being open source, we are improving Git for all users, on all platforms by contributing these modifications back,” Derrick Stolee, senior software engineer at Microsoft, wrote in a post.
To speed up interactions with the Git index, a “list of all files in the current and the expected object hash based on the current staging area,” the company found that by skipping the check Git does whenever it loads an index, it could speed up the index load time by 18 percent. Microsoft also found by checking the last entry before a binary search, it could speed up the index writing by 20 percent. In addition, they added micro-optimizations to speed up every index read or write.
Microsoft also made improvements in regard to the status and checkout Git commands. It added new flags to ‘status’ in order to make calls in Visual Studio Team Explorer faster. In addition, the company added a file-system monitor plug-in to git to supply it will an external command to present a snapshot view of file system changes.
Microsoft also improved on the way Git creates a list of all loose objects in directories. The previous way of creating the list to up to 12 percent of CPU time. Microsoft replaced this method with a simple append method, which resulted in performance improvements.
“Microsoft made a big bet on Git, making it the primary version control system for Microsoft projects, hosted by VSTS. We’ve increased our investment in making Git better for everyone and will continue with some big improvements in the coming months and years,” Stolee wrote.