Visual Studio 2019 derleme süresi düşürmek için tavsiyeler

PasFacile

Kilopat
Katılım
15 Şubat 2019
Mesajlar
477
Çözümler
3
Selam, Unreal Engine ve C++ kullanarak oyun geliştiriyorum. Fakat proje büyüdükçe derleme süresinin uzunluğu canımı sıkmaya başladı. Bazen 10 saniye, bazen 300 saniyeye kadar çıkıyor.

Anakartımın desteklediği limitte bir SSD kullanıyorum (1.500 MB/S). i7 8750H, 16 GB RAM var. Ekstradan bir 16 GB daha eklesem hızda bir iyileşme olur mu? Veya bu hızı arttırmanın başka bir yolu var mıdır? (Ekstradan resharper C++uzantısını kullanıyorum.)
 
Precompiled Header is the answer.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Projeler buyudukce precompile etmekten baska care kalmiyor. Isterseniz 32 core islemciniz olsun. Bazen yuzlerce header ekleniyor. Her biri binlerce hatta onbinlerce satir.
 
Selam, Unreal Engine ve C++ kullanarak oyun geliştiriyorum. Fakat proje büyüdükçe derleme süresinin uzunluğu canımı sıkmaya başladı. Bazen 10 saniye, bazen 300 saniyeye kadar çıkıyor.

Anakartımın desteklediği limitte bir SSD kullanıyorum (1.500 MB/S). i7 8750H, 16 GB RAM var. Ekstradan bir 16 GB daha eklesem hızda bir iyileşme olur mu? Veya bu hızı arttırmanın başka bir yolu var mıdır? (Ekstradan resharper C++uzantısını kullanıyorum.)
Düşürmek istiyorsan ReSharper'i silmeni tavsiye ediyorum. ReSharper hem projenin açılma süresini hemde build edilme süresini artırır. Bunun için ReSharper'in belirli performans artırıcı özelikleri var onlarıda deneyebilirsin.
 
Eklenecek kütüphaneleri derleyip bir köşede obje dosyası olarak saklıyorum, tabi bunu mingw-make yaparak kullanıyorum. Değişmedikleri sürece tekrar derlemene gerek kalmıyor. Sanırım arkadaşın attığı precompiler da benzer bir iş yapıyor. Denemenizde fayda var.
 
Düşürmek istiyorsan ReSharper'i silmeni tavsiye ediyorum. ReSharper hem projenin açılma süresini hemde build edilme süresini artırır. Bunun için ReSharper'in belirli performans artırıcı özelikleri var onlarıda deneyebilirsin.
ReSharper kullanmadan önce de 300 saniye beklediğimi hatırlıyorum. Ayrıca IntelliSense'in neredeyse hiçbir yardımı dokunmuyor.
Precompiled Header is the answer.

Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.

Projeler buyudukce precompile etmekten baska care kalmiyor. Isterseniz 32 core islemciniz olsun. Bazen yuzlerce header ekleniyor. Her biri binlerce hatta onbinlerce satir.

Çok teşekkürler, deneyeceğim. Ama farklı sınıflar farklı header'ler kullanıyor, bu işlemi yaparsak bir sınıf kullanmadığı header'a da mı erişecek?
Eklenecek kütüphaneleri derleyip bir köşede obje dosyası olarak saklıyorum, tabi bunu mingw-make yaparak kullanıyorum. Değişmedikleri sürece tekrar derlemene gerek kalmıyor. Sanırım arkadaşın attığı precompiler da benzer bir iş yapıyor. Denemenizde fayda var.
VS'nin default ayarlarında kodda bir değişim olmadığında derleme süresi 1 saniye sürmüyor. Acaba yeni bir header eklendiğinde bütün header'ları tekrardan mı derliyor?
 
VS'nin default ayarlarında kodda bir değişim olmadığında derleme süresi 1 saniye sürmüyor. Acaba yeni bir header eklendiğinde bütün header'ları tekrardan mı derliyor?
VS'in tam olarak nasıl çalıştığını bilmiyorum o konuda ama tahminimce değiştirilmemiş kodu tekrar derlemek zaten saçma olurdu diye düşünüldüğü için derlemeler pas geçiliyor olabilir. Önce projeyi temizleyip sonra derle dediğinizde yapması gerek kod değişmemiş olsa bile.
Makefile yapımı öğrenip elinizle de konsoldan derleyebilirsiniz MinGW kullanarak. VS arada saçmaladığı için C/C++'ı hep Linux sistemlerde elle, mecbursam Windows'da MinGW kullanarak yazıyorum.
 
Tekrar merhaba. Biraz araştırmanın sonucunda Unreal'ın PCH kullanmadığını öğrendim. Onun yerine IWYU sistemini kullanıyorlar. Kurallara dikkat ederek yazdığımız sürede fazla uzun sürmüyor derleme. Sonradan gelenler için yardımı olur belki. Yazan herkese teşekkürler. :)
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı