72 votes

DE POLITIQUES ET DE PROGRAMMES SANITAIRES

Je suis en train de mettre ensemble une analyse de rentabilisation pour l'obtention de chaque développeur dans notre société un disque SSD.

La principale base de code contient environ 400 000 lignes de code. Ma théorie est que, depuis que le code est dispersé dans peut-être 1500 fichiers, un lecteur SSD serait nettement plus rapide pour les compile. La logique étant que la plupart des petites lectures vraiment punit le chercher en temps goulot d'une traditionnels de disque dur.

Suis-je le droit? Est SSD vaut de l'argent dans les gains de productivité par la réduction de la modifier/compiler temps de cycle?

61voto

Simon Johnson Points 4641

@Bill Karwin

Merci pour vos précisions. En un sens, le problème n'est pas le moment de la compilation elle-même, c'est le fait qu'un long moment de la compilation conduit à la distraction qui brise votre "flux".

Si la compilation prend plus d'une minute, puis vous commencez à lire vos e-mail, navigateur Reddit, lire Slashdot, écrire un paragraphe dans le cahier des charges que vous devez terminer pour lundi.

Trois minutes plus tard (la compilation a effectivement eu une minute et trente secondes, mais parce que vous vous êtes distrait le temps jusqu'à ce que vous avez réellement avis c'est beaucoup plus tard) vous vous rendez compte que la compilation se fait.

Maintenant, votre flux est cassé et il est visible mentale coût de revenir à la circulation.

C'est l'accessoire de la productivité de problème, je vais essayer de résoudre.

35voto

Keltia Points 8104

Combien de temps faut-il maintenant? Acheter un pour voir comment vous pouvez gagner par la présente, vérifier le temps contre le prix de tous ces toujours-très-cher par GO Ssd et de voir si cela vaut la peine ou pas.

L'activité principale de cas pour le SSD est généralement qu'ils n'ont pas de pièces mobiles et sont exactement ce dont vous avez besoin pour un ordinateur portable... Vous pouvez avoir une meilleure bande passante par le fait d'avoir plusieurs disques au lieu d'un seul.

Mise à jour avril 2011 - L'activité principale de cas pour les disques Ssd n'est plus qu'ils n'ont pas de pièces mobiles, ils ne sont (facilement) battu par plusieurs rotation des plateaux. Les disques ssd d'entreprise principale attirer les caractéristiques de maintenant sont leurs incroyablement faible temps d'accès ( beaucoup sont < à 0,1-0,2 ms ), une très grande bande passante ( vitesse de lecture/écriture > 200-700 MO/s) et à très haute IOPS aléatoires des taux ( de 10 000 -> à 120 000 IOPS aléatoires 4K alignés). Le faible temps d'accès en particulier, peut entraîner un temps de compilation d'amélioration en fonction de votre environnement. En outre, d'envisager des améliorations dans les opérations sur les développeurs de la machine au-delà du simple projet de compilation (comme source de contrôle des caisses) Les conseils de comparer les améliorations et générer un dossier basé sur des qui tient toujours vrai.

Comme quelqu'un a dit, si le goulot d'étranglement est le moment de la compilation, vous pouvez avoir un problème plus grand que juste I/O temps de compile.

17voto

Joachim Sauer Points 133411

Si vous obtenez 40 seconde construit d’un RAM-disque (comparé à 2-3 minutes sur un disque dur), alors pourquoi ne vous simplement donner à tous les développeurs une 2 Go de mémoire RAM supplémentaire et changer votre build (ou même développement) système d’utiliser un disque RAM ?

C' est moins cher tonnes (pour le moment) et peut de RAM être utilisé pour beaucoup d’autres tâches aussi bien.

17voto

Sean Points 905

Joel Spolsky, dit-il "vaut la peine" - http://www.joelonsoftware.com/items/2009/03/27.html

Joel n'ai pas eu beaucoup de chance avec le temps de compilation, mais si vous savez (preuve à l'appui) que les i/o disque est le col de la bouteille dans votre temps de compilation, puis un SSD devrait aider.

La plupart des ingénieurs de sous-estimer le coût de l'homme (programmeur) de commutation de contexte. Les temps de compilation en moins d'une minute de réduire considérablement l'homme de commutation de contexte, et il vaut la peine de la légère hausse du coût du matériel. Le matériel est très bon marché. Les gens ne sont pas.

12voto

Bill Karwin Points 204877

Si votre goulot d'étranglement du développement est celui de I/S temps de recherche au cours de compile, vous avez certainement faire de l'ingénierie du logiciel mal.


À préciser:

La plupart de programmation implique beaucoup de travail autres que le réel compile:

  • L'analyse des exigences
  • La conception de la solution
  • La coordination avec les autres membres de l'équipe à comprendre les interfaces de leurs composants
  • En tapant le code
  • La conception et de codage des suites de tests
  • L'exécution des suites de tests et analyse des résultats
  • Commettre code de référentiel de code source
  • La documentation du travail
  • La lecture et l'écriture bug journaux
  • Des réunions, des e-mails et la messagerie instantanée

Supposons que le temps que vous passez à attendre pour la compilation est en fait seulement 2% de chaque développeur du jour (même que c'est une surestimation). Si vous pouvez augmenter le débit de votre compile et coupe de la compilation de moitié le temps, maintenant compile sont de 1% de chaque développeur jour au lieu de 2%. Pas un énorme changement, et peut-être pas la meilleure utilisation de $1000 par développeur.

Une façon de voir les choses est de combien de temps il faut pour payer. En supposant qu'un 100K $de salaire, $1K disque SSD qui augmente la productivité des développeurs de 1% de la paie dans une année. Mais le développeur aurait à écrire du code comme s'ils travaillaient dans un sweat-shop, chaque jour, pendant un an.

Au lieu de cela, si vous pouvez investir $1K par développeur dans une formation pour faire une des autres tâches que j'ai énumérés ci-dessus plus productif, vous pourriez obtenir un bien meilleur coup pour le mâle.

Ou alors utiliser cet argent pour embaucher quelqu'un pour le décharger d'une partie du travail de l'équipe de développement (par exemple Testeur qualité, Analyste de Soutien, d'Ingénieur commercial, informaticien, chef de Projet ou Assistant de Bureau).

Une autre suggestion: les études montrent que si vous améliorer l'environnement des travailleurs, il en résulte un 10% d'amélioration de la productivité. Il peut être coûteux d'amélioration, ou de quelque chose d'aussi simple que certains le mur de l'art et de plantes d'intérieur. Il n'a pas d'importance-il tend à +10% d'amélioration de la productivité, même pour une modeste amélioration de l'environnement.

Je vous suggère de l'office de tapis shampooing, et de nettoyer certains de l'accumulation de boîtes vides et d'ordure.


Re commentaire de @Zach Burlingame:

Vous avez raison, le rapport coût/bénéfice des changements rapidement. Cette question est à l'origine au début de 2009, et plus de deux ans, lorsque les disques SSD sont beaucoup plus cher, et offrait moins de la capacité et de la fiabilité qu'ils ne le font aujourd'hui à la mi-2011.

Aujourd'hui, je vois 120 GO SSD pour 175 $US, soit environ $1.50/GO. Je vais rester avec mon avis qu'en février 2009, les disques SSD sont trop coûteux pour l'emploi de facto, mais aujourd'hui, en avril 2011, ils sont un excellent choix pour un développeur de la machine.

Disques durs conventionnels coût de 1,50 $/GO en 2003. Aujourd'hui, classiques disques durs de bureau coût inférieur à 0,10 $/GO et ont des capacités 10x ceux d'aujourd'hui, les disques SSD. Donc, il y a encore des concessions importantes.

J'ai aussi le bâton avec mon avis que le génie logiciel comprend de nombreuses activités qui ne sont pas régis par la vitesse du disque cherche.


Mise à jour 2014-02-15:

Aujourd'hui, les disques SSD donner un meilleur rapport prix/performances de profit que jamais. Je peux facilement obtenir un 750 GO SSD Samsung 840 400 $ - maintenant un rapport de prix de 0,53 $/GO. Et la vitesse et la fiabilité de l'actuelle génération de SSD sont également mieux que ce qu'ils utilisées pour être.

Donc je suis d'accord qu' aujourd'hui, c'est un choix évident pour n'importe quel utilisateur de puissance, en particulier les développeurs de logiciels. Je ne voudrais pas acheter n'importe quel ordinateur de bureau avec un spinning disque dur. J'ai même acheté un SSD équipés d'ordinateur portable pour ma mère.

Toutefois, les disques durs traditionnels appareils sont toujours en 1/10ème de ce rapport de prix. Il y a toujours un marché important pour ces dispositifs. Lorsque vous avez besoin de grandes quantités de économique de stockage, sans le besoin pour une performance optimale, les disques Durs sont encore utiles. Disques de sauvegarde, à la maison des médias du PC, l'archivage de données volumineuse des photos et de la musique et de vidéos, toutes les bonnes utilise des disques Durs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X