Solid State Drives (SSDs) for Developers

ssd.jpgI generally change my hard drive (or more likely my PC) every 3 years partly to avoid sudden hard drive death in the middle of a project and partly to keep up with increasing demands of newer phone emulators. Used machines get recycled as servers or are used in my home. This time I replaced the HDD in my new PC with a SSD.

SSDs are hard drives made up of memory rather than magnetic platters. Until very recently they were too expensive for general use. However, lower memory prices now make them affordable. I replaced my development machine with one with a SSD over the weekend and instead of booting in 5 minutes (and being usable in about 7 minutes), boot time is now about 7 secs. However, most people rarely boot and, to be honest, SSDs are a luxury for most people. If you just web browse, read email and perhaps run say Word or Excel then you might as well use a conventional hard drive. Yes, these apps load slower but most of your thinking time is actually within the app. Even gamers won’t gain that much as performance is more about (3D) graphics than being able to read/write files quickly.

However, for mobile developers there are huge gains in being able to build complex projects quickly. There are even larger gains when repeatedly debugging and re-starting phone emulators. Many emulators are slow and in some cases without an SSD you need to go and do something else for a while while you wait for the emulator to start.

I spent a while researching SDDs. Here are a few pointers. Vertex are the fastest but the top end models need native SATA 3 that most motherboard chipsets don’t yet support. It turns out that going from a hard drive to any SSD gives such great gains that the additional difference between an average SSD and the best (Vertex 3) isn’t as significant. Also, it not just speed that matters. Viewing the forums, a large number of Vertex users had reported reliability problems. I wasn’t sure if this was just because more had been sold. As it’s for business rather than for fun, I didn’t want down time otherwise I’d have more productivity sticking with my hard drive. This led me to Intel who had fewer people with problems in the various forums. Additionally, Intel have also recently increased their SSD warranty from 3 to 5 years and there are some published low failure rates.

Another issue is wear. Each memory cell in SSDs can only be written to so many times (of the order of 5000 times for the latest technologies). The controllers in the SSDs average out wear across the unused portion of the drive and also maintain an extra memory area to swap out defective or worn cells. The controller also provides a wear indicator (value) so you can view wear over time. In practice, wear isn’t an issue as by the time your drive is worn you will have replaced it or the PC. There are also calculations that show that, with average use, an SSD is going to last a very long time anyway.

If you are mobile developer writing code, I think replacing your hard drive with a Solid State Drive (SSD) will be the largest performance step change you will probably ever make.