24 pontos por xguru 2022-12-12 | 9 comentários | Compartilhar no WhatsApp
  • Prova por experimento por que "tempos de build rápidos são importantes para as empresas" e se "recursos robustos de nuvem são realmente caros"
  • Teste do tempo de build no GitHub Large Runner com 2 a 64 cores (kernel Linux do Fedora)

O custo de tempos de build lentos para a empresa

  • Considerando o salário médio anual de um desenvolvedor como US$ 150 mil, isso dá US$ 75 por hora
  • Se um build leva 1 hora e o desenvolvedor não faz outra coisa nesse período, a empresa simplesmente arca com um custo de US$ 75
  • Resultado da execução (Fedora 36)
    • Cores (preço por minuto) - tempo total de build - custo por build - custo do desenvolvedor (1 pessoa)
    • 2 cores (US$ 0,008/min) - 310 min - US$ 2,48 - US$ 389,98
    • 8 cores (US$ 0,0032/min) - 92 min - US$ 2,94 - US$ 117,94
    • 16 cores (US$ 0,064/min) - 55 min - US$ 3,52 - US$ 72,27
    • 32 cores (US$ 0,128/min) - 35 min - US$ 4,48 - US$ 48,23
    • 64 cores (US$ 0,256/min) - 27 min - US$ 6,91 - US$ 40,66
  • Conclusão: quanto mais desenvolvedores houver, mais eficiente é gastar com hardware mais potente

O custo da troca de contexto para a empresa

  • Se assumirmos que o desenvolvedor faz outras tarefas enquanto o build está em andamento
  • A troca de contexto também tem um custo. Segundo pesquisas, leva em média cerca de 23 minutos
  • Pessoalmente, parece que levo cerca de uma hora para sair de uma tarefa em que estava focado e entrar em outra
  • Resultado da execução (calculando algo entre 30 e 15 minutos)
    • Cores - tempo de build - custo por build - custo parcial do desenvolvedor (1 pessoa, 30 min) - custo parcial do desenvolvedor (1 pessoa, 15 min)
    • 2 cores - 310 - US$ 2,48 - US$ 39,98 - US$ 21,23
    • 16 cores - 55 - US$ 3,52 - US$ 41,02 - US$ 22,23
    • 64 cores - 27 - US$ 6,91 - US$ 44,41 - US$ 25,66
  • Mantendo a premissa de que o custo do desenvolvedor é de US$ 75 por hora, gastar mais com a máquina é muito mais eficiente
    • Mesmo usando o 64-core, o mais caro, isso ainda representa apenas um quinto do custo por hora de um único desenvolvedor

Conclusão

  • Pagar por hardware melhor é, na prática, mais barato e melhor para os desenvolvedores (reduz interrupções)
  • No experimento acima, pagar US$ 4~5 a mais pelo tempo de build economiza US$ 40 para um desenvolvedor solo e mais de US$ 200 para uma equipe de 5 pessoas, além de poupar uma hora gasta com troca de tarefas
    • Claro que, em empresas grandes, gastar US$ 4~5 por build pode se tornar um valor considerável, mas o custo de produtividade perdida também cresce
  • Gastar dinheiro com melhor desempenho de CPU traz retorno com o tempo.
    Claro, os desenvolvedores vão agradecer

9 comentários

 
kandk 2022-12-13

Concordo.

 
depth221 2022-12-13

https://xkcd.com/303/

Parece que ficar sem ter o que fazer durante o tempo de build é algo universal.

 
pmc7777 2022-12-12

Nossa, era exatamente esse tipo de conteúdo que eu estava realmente curioso para ver. O blog do GitHub também tem mais coisas interessantes do que eu imaginava. Fiquei até aliviado(?) em saber que não sou só eu que acaba fazendo outra coisa durante o build ou fica pensando nisso o tempo todo.

 
love7peace 2022-12-12

Concordo. Prefiro desktop a notebook, a menos que seja um Plus.

 
dbs0829 2022-12-12

Concordo. Sou pesquisador de deep learning e uso vários equipamentos ao mesmo tempo.
Como costumo rodar experimentos com frequência, muitas vezes acabo usando todos os recursos,
e nisso vão surgindo intervalos ociosos aqui e ali.
Além disso, durante os experimentos, também acaba sendo meio difícil se concentrar em outras tarefas.

 
kherootz 2022-12-12

O salário anual médio é de $150k?

 
kuroneko 2022-12-12

Às vezes eu me sentia frustrado por causa dos limites de desempenho do PC ou do servidor, e com certeza tive a sensação de que minha produtividade caía em comparação com quando tudo funcionava de forma ágil.

 
ruinnel 2022-12-12

Mas é verdade mesmo.
No passado, já trabalhei em um desenvolvimento em que cada build levava 1 hora...
Quando você roda o build, acaba sempre indo fazer outra coisa até terminar kkk
Enquanto o build está rodando, o PC também fica travando um pouco...
Mesmo que eu esteja ocupado com outro trabalho, acabo checando o andamento do build de vez em quando, então é difícil manter o foco.

 
xguru 2022-12-12

Embora seja um texto promocional do GitHub Large Runner dizendo para usar boas instâncias de build...
O item "comprem para os desenvolvedores o equipamento mais caro que o dinheiro permitir" do The Joel Test #9 continua valendo exatamente da mesma forma na era da nuvem.