Experimento: o custo oculto de tempos de build lentos
(github.blog)- 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
Concordo.
https://xkcd.com/303/
Parece que ficar sem ter o que fazer durante o tempo de build é algo universal.
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.
Concordo. Prefiro desktop a notebook, a menos que seja um Plus.
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.
O salário anual médio é de $150k?
À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.
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.
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.