Çift çekirdekli 2GHz, 2G Ram makinelerde 20 dakikadan fazla sürebilen çok yavaş derleme süreleri alıyoruz.
Bunun çoğu, 70'den fazla projeye ulaşan çözümümüzün boyutundan ve çok sayıda dosyanız olduğunda başlı başına bir dar boğaz olan VSS'den kaynaklanmaktadır. (VSS'yi değiştirmek maalesef bir seçenek değil, bu yüzden bunun bir VSS bashına inmesini istemiyorum)
Birleştirme projelerine bakıyoruz. Ayrıca, kaygıların daha fazla ayrılması ve uygulamanın her öğesi için daha hızlı derleme süreleri elde etmek için birden fazla çözüme sahip olmayı da arıyoruz. Görebildiğim bu şey, biz işleri senkronize etmeye çalışırken bir DLL cehennemi olacak.
Diğer takımların bu ölçeklendirme sorunuyla nasıl başa çıktıklarını merak ediyorum, kod tabanınız kritik bir kütleye ulaştığında, durum çubuğunun derleme mesajlarını iletmesini izleyerek yarım gün harcadığınız zaman ne yaparsınız?
GÜNCELLEME Bunun bir C # çözümü olduğundan bahsetmeyi ihmal ettim. Tüm C ++ önerileri için teşekkürler, ancak başlıklar hakkında endişelenmem gerekmeyeli birkaç yıl oldu.
DÜZENLE:
Şimdiye kadar yardımcı olan güzel öneriler (aşağıda başka güzel öneriler olmadığını söylememek, sadece yardımcı olan şey)
- Yeni 3GHz dizüstü bilgisayar - kayıp kullanımın gücü, yönetime sızlanırken harikalar yaratıyor
- Derleme sırasında Anti Virüsü devre dışı bırakın
- Derleme sırasında VSS'den (aslında ağ) 'bağlantının kesilmesi' - VS-VSS entegrasyonunu tamamen kaldırmamızı ve VSS kullanıcı arayüzünü kullanmaya devam etmemizi sağlayabilirim
Yine de bir derlemede rip-snorting değil, ama her parçası yardımcı oluyor.
Orion, jenerik ilaçların da bir oyun oynayabileceğinden bahsetti. Testlerime göre minimum performans vuruşu var gibi görünüyor, ancak emin olmak için yeterince yüksek değil - disk etkinliği nedeniyle derleme süreleri tutarsız olabilir. Zaman sınırlamaları nedeniyle, testlerim canlı sistemde göründüğü kadar çok Jenerik veya kod içermiyordu, bu yüzden birikebilir. Sadece derleme zamanı performansı için kullanılması gereken yerde jenerik kullanmaktan kaçınmam
Pratik Çözüm
Yeni çözümlerde yeni uygulama alanları oluşturma, en son dll'leri gerektiği gibi içe aktarma, onlardan memnun kaldığımızda bunları daha büyük çözüme entegre etme pratiğini test ediyoruz.
Bunları, sadece üzerinde çalışmamız gereken alanları kapsayan geçici çözümler oluşturarak ve kodu yeniden entegre ettikten sonra bunları atarak mevcut koda da aynısını yapabiliriz. Geliştirme sırasında Rip Van Winkle gibi deneyimler yaşamamakla kazandığımız zamana karşı bu kodu yeniden entegre etmek için gereken zamanı tartmamız gerekiyor.