- Demuestra con experimentos por qué los tiempos de compilación rápidos son importantes para una empresa y si los recursos potentes en la nube realmente son caros
- Se probaron tiempos de compilación en GitHub Large Runner de 2 a 64 núcleos (kernel de Linux de Fedora)
El costo que los tiempos de compilación lentos tienen para una empresa
- Suponiendo un salario promedio de desarrollador de $150K, eso equivale a $75 por hora
- Si una compilación tarda 1 hora y el desarrollador no hace otra cosa, la empresa simplemente termina pagando un costo de $75
- Resultados de la ejecución (Fedora 36)
- Núcleos (precio por minuto) - tiempo total de compilación - costo por compilación - costo del desarrollador (1 persona)
- 2 núcleos ($0.008/min) - 310 min - $2.48 - $389.98
- 8 núcleos ($0.0032/min) - 92 min - $2.94 - $117.94
- 16 núcleos ($0.064/min) - 55 min - $3.52 - $72.27
- 32 núcleos ($0.128/min) - 35 min - $4.48 - $48.23
- 64 núcleos ($0.256/min) - 27 min - $6.91 - $40.66
- La conclusión es que, mientras más desarrolladores haya trabajando, más eficiente es gastar en hardware más potente
El costo que el cambio de contexto tiene para una empresa
- Si asumimos que el desarrollador hace otras tareas mientras la compilación está en curso
- Cambiar de contexto también tiene un costo. Según investigaciones, en promedio toma unos 23 minutos
- Personalmente, siento que pasar de una tarea en la que estaba concentrado a otra toma cerca de una hora
- Resultados de la ejecución (calculado con unos 30~15 minutos)
- Núcleos - tiempo de compilación - costo por compilación - costo parcial del desarrollador (1 persona, 30 min) - costo parcial del desarrollador (1 persona, 15 min)
- 2 núcleos - 310 - $2.48 - $39.98 - $21.23
- 16 núcleos - 55 - $3.52 - $41.02 - $22.23
- 64 núcleos - 27 - $6.91 - $44.41 - $25.66
- Bajo la suposición de que el costo del desarrollador es de $75 por hora, gastar más dinero en la computadora es mucho más eficiente
- Incluso usar el costoso equipo de 64 núcleos equivale a apenas una quinta parte del costo por hora de un solo desarrollador
Conclusión
- Pagar por mejor hardware en realidad sale más barato y además es mejor para los desarrolladores (reduce las interrupciones)
- En el experimento anterior, pagar $4~5 más por tiempo de compilación ahorra $40 a un desarrollador individual y más de $200 a un equipo de 5 personas, además de ahorrar una hora de cambio de tarea
- Claro, en una empresa grande gastar $4~5 por compilación puede llegar a ser bastante, pero el costo de productividad desperdiciada también crece
- Gastar dinero para obtener mejor rendimiento de CPU termina recompensándose con el tiempo.
Por supuesto, los desarrolladores te lo agradecerán
9 comentarios
ajá
https://xkcd.com/303/
Parece que quedarse sin nada útil que hacer durante el tiempo de compilación es algo universal.
Vaya, esto era justo algo que de verdad me daba curiosidad. Parece que el blog de GitHub tiene más cosas interesantes de lo que pensaba. Me tranquiliza(?) saber que no soy la única persona que se distrae o sigue pendiente de otras cosas mientras compila.
Lo admito. Prefiero las computadoras de escritorio antes que las laptops Plus.
Totalmente de acuerdo. Soy investigador de deep learning, así que uso varios equipos al mismo tiempo.
Como suelo correr experimentos con frecuencia, muchas veces termino usando todos los recursos,
y en esos casos se generan ratos muertos entre una cosa y otra.
Además, también distrae más de lo que parece ponerse a hacer otras tareas mientras corre un experimento.
¿El salario anual promedio es de $150k?
A veces me frustré por las limitaciones de rendimiento de mi PC o servidor, y definitivamente sentí que mi productividad bajaba en comparación con cuando todo funcionaba con más agilidad.
Pero sí, es verdad.
Antes trabajé en un desarrollo donde cada build tardaba como 1 hora...
Cuando lanzas el build, siempre terminas distraído haciendo otra cosa jajaja
Además, mientras corre el build, la PC también se pone lenta...
Y aunque estés ocupado con otra cosa, igual terminas revisando de vez en cuando cómo va el build, así que cuesta concentrarse bien.
Aunque sí es un artículo promocional de GitHub Large Runner que dice que uses una buena instancia de compilación...
el punto #9 de The Joel Test, que dice: "cómprenles a los desarrolladores el equipo más caro que el dinero permita", aplica igual en la era de la nube.