Il y a déjà quelques années que les disques durs flash (SSD) sont apparus sur le marché. Au début, on les retrouvait davantage sur des systèmes bien précis, où leurs propriétés atypiques obligeaient leur utilisation. Par exemple, j’ai un ami qui travaille en informatique dans le milieu forestier. Dans ce contexte, les SSD sont utilisés depuis plusieurs années comme contrôleur dans des systèmes embarqués sur de grosses machines directement sur l’exploitation. Ces machines se promènent sur tout le territoire, coupent, préparent et transportent le bois. Pour eux, le gros avantage du SSD est la résistance aux vibrations.
Honnêtement, il n’y a pas tant de vibrations que ça au bureau… Et pour d’autres qui travaillent sur des ordinateurs portables, ils l’utilisent pour le gain en économie de batterie. Mais ce qui nous intéresse de notre côté, c’est les performances incroyables de certains SSD sur la lecture et l’écriture de fichiers aléatoirement distribués sur le disque dur. Prenez par exemple, le Intel X25-M. Il est reconnu pour permettre 250 MB/s en lecture et 70 MB/s en écriture en maintenant jusqu’à 32 opérations en parallèle, au détriment de peu d’espace avec son chétif 80 GB. Et en cherchant sur le Web, vous trouverez une panoplie de personnes vous vantant ces mérites pour accélérer leur système.
Nous avons donc décider de prendre le temps de tester dans notre environnement ce que l’on pourrait avoir comme gain à l’utilisation. À sa sortie en 2008, ce disque ce détaillait près de 800$, alors qu’on le retrouve désormais aux environs de 250$ (si vous êtes dans la région de Drummondville, je vous conseille Dr Solutions, ils en ont à un prix très agréable).
Objectif du test
Pour nos tests, nous nous sommes concentrés sur du quantifiable, bien que je puisse vous assurer qu’il y a une amélioration ressentie dans la majorité des applications; Windows en premier. Notre objectif de départ était de mesurer les temps de compilation comme pour la plupart de nos applications, ce temps représente une part non négligeable de la journée d’un développeur.
Démarche
Nous avons donc préparé deux machines similaires, l’une avec un disque dur Western Digital comme nous utilisons d’ordinaire, la seconde avec un Intel X25-M de seconde génération. Et pour bien mesurer notre test, les deux disques durs ont été placés dans la même machine. On changeait l’unité de démarrage pour tester l’une ou l’autre, mais nous étions assurés d’avoir la même mémoire, la même carte maitresse, le même CPU, …
Chaque test fût exécuté trois fois pour permettre de lisser quelque peu les données. Il y a eu de deux à quatre tests :
- Compilation complète de la solution (Rebuilt All);
- Compilation des modifications (Build).
Et pour une des solutions, nous avons aussi profité du test pour compiler sous Visual Studio 2010 sur le SSD.
Description du poste
Voici les spécifications sommaires du poste sur lequel a eu lieu le test. Il représente bien un poste typique de développeur chez nous.
| CPU | Intel Core2 Quad Q6600 @ 2.4 GHz |
| Mémoire | 4 GB |
| Carte maitresse | MSI MS-7345 |
| Système d’exploitation | Windows 7 x64 |
| Version de Visual Studio | Visual Studio 2008 SP1 Visual Studio 2010 (sur Intel X25 seulement) |
| Version de .Net visé | .Net 3.5 SP1 |
Tous les Hotfix / Service pack étaient installés.
Description des solutions compilées
Nous avons effectués les tests de compilation sur trois projets. Comme le développement Web représente la majorité des développements effectués chez Nmedia, nous avons testé deux solutions principalement Web et une Windows Presentation Fondation (WPF).
| | Technologie | Nombre de projets | Nombre de lignes de codes |
| Web #1 | ASP .Net | 27 | 128254 |
| Web #2 | ASP .Net | 17 | 62898 |
| WPF | WPF | 18 | 62197 |
Ceci dit, dans les solutions Web, il y avait aussi des projets WPF et Silverlight.
Observations
Voici les données mesurées et sur lesquelles furent calculées la moyenne.
| | Disque dur à plateau Rebuild All | Disque dur à plateau Build | SSD Rebuild All | SSD Build | SSD Rebuild All - VS2010 | SSD Build - VS2010 |
| WPF | 101.9 | 8.5 | 76.5 | 5.8 | 37.9 | 5.2 |
| Web #1 | 117.5 | 64.4 | 57.3 | 43.3 | | |
| Web #2 | 35.7 | 15.3 | 21.6 | 7.4 | | |
Répartition pour les trois solutions :
Application Web #1
Application Web #2
Application WPF
Résultats
Et oui… ce qui nous intéresse le plus : SHOW ME THE MONEY ! (ou les chiffres dans notre cas).
| | Temps sauvé Rebuild All | Temps sauvé Build | Gain Rebuild All | Gain Build |
| Web #1 | 60.2 s | 21.0 s | 51% | 33% |
| Web #2 | 14.0 s | 7.9 s | 39% | 52% |
| WPF | 25.4 s | 2.7 s | 25% | 31% |
Vous vous souvenez que nous avons testé l’application WPF sur SSD ET Visual Studio 2010 ?
| | Temps sauvé Rebuild All | Temps sauvé Build | Gain Rebuild All | Gain Build |
| WPF | 64.0 | 3.2 | 63% | 38% |
Conclusion
Ça, je vous le laisse en exercice à la maison !