Deney: Yavaş derleme sürelerinin gizli maliyeti
(github.blog)- "Hızlı derleme süreleri şirket için neden önemlidir" ve "Güçlü bulut kaynakları gerçekten pahalı mı?" sorularını deneyle kanıtlama
- GitHub Large Runner 2~64 çekirdekte derleme süreleri test edildi (Fedora Linux çekirdeği)
Yavaş derleme sürelerinin şirkete maliyeti
- Geliştirici ortalama maaşı $150K kabul edildiğinde saatlik maliyet $75
- Derleme 1 saat sürüyorsa ve geliştirici bu sırada başka bir şey yapmıyorsa, şirket fiilen $75 maliyet ödemiş olur
- Çalıştırma sonuçları (Fedora 36)
- Çekirdek (dakika başı ücret) - toplam derleme süresi - derleme başı maliyet - geliştirici maliyeti (1 kişi)
- 2 çekirdek($0.008/dakika) - 310 dakika - $2.48 - $389.98
- 8 çekirdek($0.0032/dakika) - 92 dakika - $2.94 - $117.94
- 16 çekirdek($0.064/dakika) - 55 dakika - $3.52 - $72.27
- 32 çekirdek($0.128/dakika) - 35 dakika - $4.48 - $48.23
- 64 çekirdek($0.256/dakika) - 27 dakika - $6.91 - $40.66
- Geliştirici sayısı arttıkça daha güçlü donanıma para harcamanın daha verimli olduğu sonucuna varılıyor
Bağlam değiştirmenin şirkete maliyeti
- Derleme sürerken geliştiricinin başka işler yaptığını varsayarsak
- Bağlam değiştirme de bir maliyet yaratır. Araştırmalara göre bunun ortalaması yaklaşık 23 dakika
- Kişisel olarak, odaklandığım bir işten başka bir işe geçmenin yaklaşık bir saat sürdüğünü düşünüyorum
- Çalıştırma sonuçları (yaklaşık 30~15 dakika üzerinden hesaplandığında)
- Çekirdek - derleme süresi - derleme başı maliyet - kısmi geliştirici maliyeti (1 kişi, 30 dakika) - kısmi geliştirici maliyeti (1 kişi, 15 dakika)
- 2 çekirdek - 310 - $2.48 - $39.98 - $21.23
- 16 çekirdek - 55 - $3.52 - $41.02 - $22.23
- 64 çekirdek - 27 - $6.91 - $44.41 - $25.66
- Geliştirici maliyetinin saatlik $75 olduğu varsayımında, bilgisayara daha fazla para harcamak çok daha verimlidir
- En pahalı 64 çekirdek bile tek bir geliştiricinin saatlik maliyetinin yalnızca beşte biri kadar
Sonuç
- Daha iyi donanıma para ödemek aslında daha ucuzdur ve geliştirici için de daha iyidir (dikkat dağıtıcı unsurları azaltır)
- Bu deneyde, derleme süresi için fazladan $4~5 ödemek, tek bir geliştirici için $40, 5 kişilik bir ekip için ise $200'den fazla tasarruf sağlarken, görev değiştirmeye giden bir saati de kurtarıyor
- Elbette büyük şirketlerde derleme başına $4~5 harcamak ciddi bir toplam oluşturabilir, ancak boşa giden üretkenlik maliyeti de aynı ölçüde büyür
- Daha iyi CPU performansı için para harcamak, zaman içinde karşılığını verir.
Elbette geliştiriciler de size minnettar olacaktır
9 yorum
Katılıyorum
https://xkcd.com/303/
Görünüşe göre build süresinde yapılacak doğru dürüst bir işin kalmaması dünyanın her yerinde ortak.
Vay, gerçekten merak ettiğim bir konuydu. GitHub blogunda da düşündüğümden daha fazla bakacak şey varmış. Build alırken başka şeylerle oyalanmanın ya da sürekli ona takılı kalmanın sadece bende olmadığını görmek içimi rahatlattı(?).
Kabul. Ayrıca laptop yerine masaüstünü tercih ederim.
Katılıyorum. Ben bir derin öğrenme araştırmacısıyım ve aynı anda birden fazla cihaz kullanıyorum.
Normalde sık sık deneyler çalıştırdığım için çoğu zaman tüm kaynakları kullandığım oluyor.
Böyle olunca aralarda boşa çıkan zamanlar oluşuyor.
Deney sürerken başka işler yapmak da fark ettirmeden dikkat dağıtıyor.
Ortalama maaş $150k mı?
PC ya da sunucunun performans sınırları yüzünden zaman zaman bunaltıcı anlar yaşadım; kesinlikle her şeyin hızlı ve akıcı çalıştığı duruma kıyasla üretkenliğin düştüğünü hissettim.
Ama söyledikleri doğru.
Eskiden build’in 1 saat sürdüğü bir geliştirme işi yapmıştım...
Build’i başlatınca hep bitene kadar başka şeylerle oyalanıyorsunuz lol
Build çalışırken PC de kasılabiliyor...
Yoğun olup başka bir işle uğraşsanız bile build’in ilerleme durumunu ara sıra kontrol ediyorsunuz, bu yüzden odaklanmak pek kolay olmuyor.
Her ne kadar iyi bir build instance’ı kullanın diyen, GitHub Large Runner tanıtımı niteliğinde bir yazı olsa da.. "Geliştiricilere, bütçenin izin verdiği en pahalı ekipmanı alın" diyen The Joel Test #9 maddesi, bulut çağında da aynen geçerliliğini koruyor.