Tip/Trick: Hard Drive Speed and Visual Studio Performance
People often ask me at conferences for PC hardware recommendations. Specifically - "what type of machine do you recommend I get for doing development with Visual Studio?" and/or "your laptop seems really fast, what type is it?"
Some of my recommendations on this topic are fairly standard and obvious: Ideally you want to get a duel core or better CPU. I also always recommend getting at least 2GB or more of RAM.
The recommendation I make that often seems to take people a little by surprise is to make sure you always get the fastest possible hard-drive when buying a new machine - and where necessary trade off purchasing additional CPU processor speed in favor of investing in a faster disk instead.
Why does hard drive speed matter?
Multi-core CPUs on machines have gotten fast enough over the past few years that in most common application scenarios you don't usually end up blocking on available processor capacity in your machine.
What you are much more likely to block on is the Seek and I/O speed capacity with which your computer accesses your hard drive. If you are using an application that needs to read/write a lot of files, it is not atypical for your CPU processor utilization to be really low - since the application might be spending most of its time just waiting for the disk operations to complete.
When you are doing development with Visual Studio you end up reading/writing a lot of files, and spend a large amount of time doing disk I/O activity. Large projects and solutions might have hundreds (or thousands) of source files (including images, css, pages, user controls, etc). When you open a project Visual Studio needs to read and parse all source files in it so as to provide intellisense. When you are enlisted in source control and check out a file you are updating files and timestamps on disk. When you do a compilation of a solution, Visual Studio will check for updated assemblies from multiple disk path locations, write out multiple new assemblies to disk when the compilation is done, as well as persist .pdb debugger symbol files on disk with them (all as separate file save operations). When you attach a debugger to a process (the default behavior when you press F5 to run an application), Visual Studio then needs to search and load the debugger symbols of all assemblies and DLLs for the application so as to setup breakpoints.
If you have a slow hard-drive, Visual Studio will end up being blocked as it waits for it to complete these read/write operations - which can really slow down your overall development experience.
Some laptop hard drive recommendations
The default hard drive speed for most PC laptops is typically 5400rpm - which is a pretty slow drive. If you are getting a new laptop and plan to use Visual Studio on it, I highly recommend making sure you get a 7200rpm drive instead. You will realize a significant performance benefit by doing this.
You might assume if you are buying a top of the line laptop that "of course" it won't have a slow drive. Don't assume this! Check out the default configuration of this high-end Thinkpad (which is the brand I use), or the default configuration of the high-end Dell XPS laptop (whose list price starts at $3,343), or the default configuration of the 17" Apple MacBook Pro laptop ($2,799). Notice that by default all three of these premium laptop lines have 5400rpm drives.
For an additional $55 (Lenovo), $93 (Dell) or $200 (Apple) you can upgrade the hard drive to be a 7200rpm disk instead. Putting this small amount of extra money in the faster disk can really make a big performance difference and is an absolutely worthwhile investment.
Some desktop machine hard drive recommendations
Two hard drive performance considerations to consider with desktop configurations:
1) Consider getting a 10,000rpm hard drive. These are lightening fast and can make a big difference over the default 7,200rpm drives that typically come with desktops (Jeff Atwood has a good blog post recommending one of these).
2) Consider buying a second physical hard drive and setup your operating system and OS virtual memory swap file to use one of the physical drives, and then store all your data (images, documents and Visual Studio projects) on the second physical drive. The benefit of an approach like this is that your read/write data operations won't be competing for disk I/O activity with the operating system updating the virtual memory file.
Other Visual Studio Performance Recommendations
While on the topic of improving Visual Studio performance, you might want to also check out the blog posts and articles below for some good recommendations:
- Tip/Trick: Optimizing ASP.NET 2.0 Web Project Build Performance with Visual Studio 2005
- Public Hotfix Patch Available for VS 2005 F5 Debugging Performance Issue with ASP.NET
- Speed up Visual Studio 2005
- Optimize the Launch of Visual Studio 2005
One other performance gotcha I've heard about recently is an issue that a few people have reported running into with the Google Toolbar add-in. For some reason this can sometimes cause long delays when attaching the Visual Studio debugger to the browser. If you are seeing long delays with your web application loading, and have the Google Toolbar (or other toolbars) installed, you might want to try uninstalling them to see if that is the cause of the issue.
Hope this helps,
Scott
P.S. For more of my tip/trick posts, please check out my ASP.NET Tips, Tricks and Tutorials page.