24 puntos por xguru 2022-12-12 | 9 comentarios | Compartir por WhatsApp
  • 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

 
kandk 2022-12-13

ajá

 
depth221 2022-12-13

https://xkcd.com/303/

Parece que quedarse sin nada útil que hacer durante el tiempo de compilación es algo universal.

 
pmc7777 2022-12-12

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.

 
love7peace 2022-12-12

Lo admito. Prefiero las computadoras de escritorio antes que las laptops Plus.

 
dbs0829 2022-12-12

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.

 
kherootz 2022-12-12

¿El salario anual promedio es de $150k?

 
kuroneko 2022-12-12

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.

 
ruinnel 2022-12-12

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.

 
xguru 2022-12-12

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.