An overwhelming majority of Java developers work on Windows devices. Developers, IDE and cloud service providers are constantly looking for ways to enhance efficiency and reduce build times. Dev Drive is a tool specifically designed to optimize the development environment on Windows, including significant performance improvements for Java development.
What is Dev Drive?
Dev Drive is a novel storage solution, built upon Resilient File System (ReFS). ReFS is a Microsoft file system format designed to maximize data availability, scale efficiently to large data sets across diverse workloads, and provide data integrity. It’s engineered to optimize file system performance, providing Java developers with increased control over storage volume settings and security. You can read more about ReFs here: Resilient File System (ReFS) overview | Microsoft Learn
Benefits of Using Dev Drive for Java Development
Dev Drive has been rigorously tested by Microsoft’s internal teams, yielding impressive results. It has demonstrated up to 14%-28% faster full builds, numbers that are hard to ignore for any Java developer looking to speed up their workflow​​.
Additionally, Microsoft has continued to invest in Dev Drive, and now has a preview of Block Cloning (aka Copy-On-Write) built into the Windows copy engine. This feature results in near instantaneous copies for very large files on a Dev Drive. The Copy-on-write (CoW) feature significantly reduces disk space usage and speeds up file writing processes, a critical aspect in large-scale Java projects​​​​.
Setting up Dev Drive
Setting up Dev Drive is straightforward. It involves navigating through the Windows Settings to the Disks & Volumes section and creating a new Dev Drive, after ensuring that your system meets the necessary prerequisites. For those preferring a more hands-on approach, Dev Drive can also be configured via command line, offering flexibility for different user preferences​​​​. Check out the overview of how to Set up a Dev Drive on Windows 11 on Microsoft Learn, which provides an introduction to Dev Drive and Copy-on-Write for Developer Performance, including details on Maven and Gradle setup.
Dev Drive Features in the Dev Home machine configuration tool
The Dev Home machine configuration tool is a notable feature that simplifies setting up your development environment. It allows for streamlined installation of applications, cloning of repositories, and addition of a Dev Drive to your system, making the process less tedious and more efficient​​.   Here are more details on using Dev Home, including cloning a GitHub repo and storing it on a Dev Drive: Set up your Windows development environment with Dev Home | Microsoft Learn
Example – Building the Spring Pet Clinic with Maven
Here’s an example using the Spring Pet Clinic sample application to test build times. I forked and cloned the repo locally, then ran the mvnw package command to build the sample application. The time for the initial build using Maven is almost 7 minutes, but this is not a perfect baseline, because retrieving the dependencies depends on bandwith, and is subject to network latency. A second run of the mvnw package command builds with without downloading the dependencies, and takes just over 2 minutes and is better for comparing Dev Drive performance:
Once I had the initial baseline, I set up my dev drive, and named it briansdevdrive
:
Next I create a new Maven cache directory in briansdevdrive
called maven and set the global environment variable MAVEN_OPTS
to add a configuration setting to that path. In this case, the value is:
setx /M MAVEN_OPTS -Dmaven.repo.local=D:\briansdevdrive\maven
This returns a message:
SUCCESS: Specified value was saved.Â
TIP: If you get this message:
ERROR: Access to the registry path is denied.
Open the command prompt and/or terminal as administrator before running the command:
Next, I cloned a second local repo and ran the same commands. The time for the build is now 45 seconds, less than half the build time without the Dev drive!
Results may vary based on several hardware and software factors, but in an iterative environment, and/or a much larger project with a longer build time with either Maven or Gradle, you can see every tangible benefits using a Dev Drive.
Conclusion:
Dev Drive presents a significant leap forward in optimizing Java development on Windows. Its integration of cutting-edge file system technologies and developer-centric features makes it an indispensable tool for modern Java developers. Looking ahead, Dev Drive’s integration into Windows Server, Microsoft Dev Box, and its anticipated role in Azure Pipelines and GitHub Actions promise a more efficient development ecosystem for Java and other languages​​​​. We invite you to explore its capabilities and share your experiences to help us build a community of efficient and empowered developers!
Why it’s reducing build time? Many test says that ReFs has same speed as NTFS, or even slower… Does it because of some ‘flush’ control logic?
I tried a DevDrive for a C# & F# solution I regularly work on and saw a solid 20% decrease in build times across a variety of PC’s.
I also compared a DevDrive backed by a VHDX file and an actual drive partition but there wasn’t a significant difference so I’m sticking to the VHDX option for now. That’s more flexible.
If you’re on Windows 11 DevDrive is just something you should do.