実験: 遅いビルド時間の隠れたコスト
(github.blog)- 「ビルド時間が速いことが企業にとって重要な理由」と「強力なクラウドリソースは実際に高いのか?」を実験で検証
- GitHub Large Runnerの2〜64コアでビルド時間をテスト(Fedora Linuxカーネル)
遅いビルド時間が企業にもたらすコスト
- 開発者の平均年収を$150Kとすると、時給は$75
- ビルドに1時間かかり、その間開発者が他のことをしないなら、企業は$75のコストをただ支払うことになる
- 実行結果(Fedora 36)
- コア(1分あたりの価格)- 総ビルド時間 - 1ビルドあたりのコスト - 開発者コスト(1人)
- 2コア($0.008/分)- 310分 - $2.48 - $389.98
- 8コア($0.0032/分)- 92分 - $2.94 - $117.94
- 16コア($0.064/分)- 55分 - $3.52 - $72.27
- 32コア($0.128/分)- 35分 - $4.48 - $48.23
- 64コア($0.256/分)- 27分 - $6.91 - $40.66
- 開発者が多いほど、より強力なハードウェアにコストをかけるほうが効率的という結論
コンテキストスイッチが企業にもたらすコスト
- ビルド中に開発者が別の作業をすると仮定すると
- コンテキスト切り替えにもコストがかかる。研究によれば平均で約23分かかるという
- 個人的には、集中していた作業から別の作業へ移るのに1時間はかかるように感じる
- 実行結果(30〜15分程度で計算した場合)
- コア - ビルド時間 - 1ビルドあたりのコスト - 部分的な開発者コスト(1人、30分)- 部分的な開発者コスト(1人、15分)
- 2コア - 310 - $2.48 - $39.98 - $21.23
- 16コア - 55 - $3.52 - $41.02 - $22.23
- 64コア - 27 - $6.91 - $44.41 - $25.66
- 開発者コストが時給$75という前提では、コンピュータにより多くの費用をかけるほうがはるかに効率的
- 最も高価な64コアを使っても、単一の開発者の時給の5分の1に過ぎない
結論
- より良いハードウェアにお金を払うほうが、実際には安く、開発者にとっても良い(妨げを減らせる)
- この実験では、ビルド時間のために$4〜5多く支払うことで、1人の開発者なら$40、5人チームなら$200以上を節約でき、さらにタスク切り替えにかかる1時間も節約できる
- もちろん大企業では、1ビルドあたり$4〜5を使うことはかなり大きくなる可能性もあるが、失われる生産性コストも同様に大きくなる
- より良いCPU性能のためにお金を使うことは、時間が経つほど見返りがある。
もちろん開発者はあなたに感謝するはず
9件のコメント
同意
https://xkcd.com/303/
ビルド時間にやるべきことがなくなるのは、どうやら世界共通のようです。
わあ、本当に気になっていた内容です。GitHubブログも思ったより見どころが多いんですね。ビルドするときにほかのことをしたり、ずっと気になってしまうのが自分だけじゃないみたいで安心(?)しました。
認める。PlusノートPCよりデスクトップのほうが好み。
共感します。私はディープラーニングの研究者で、複数の機材を同時に使っています。
普段から実験を頻繁に回しているので、すべてのリソースを使い切ることが多いのですが、
そうしていると、途中でぽっかり空く時間が生まれるんですよね。
実験中に別の仕事をするのも、地味に気を使います。
平均年収は$150kですか?
PCやサーバーの性能限界のせいで、ときどきもどかしく感じたことがありましたが、やはりキビキビ快適に動くときに比べると生産性が落ちる気がしました。
でも、たしかにその通りです。
以前、ビルドに毎回1時間ずつかかる開発をしていたことがあるのですが……
ビルドを回すと、終わるまでいつも別のことをしてしまいます(笑)
ビルド中はPCが重くなることもありますし……
忙しくて別の作業をしていたとしても、ビルドの進捗をちょくちょく確認してしまうので、なかなか集中できないんですよね。
GitHub Large Runner を使うべきだという宣伝色のある記事ではありますが……
「開発者には、資金が許す限り最も高価な機材を与えてください」という The Joel Test の #9 の項目は、クラウド時代にもまったく同じように当てはまります。