Bunun çok fazla bir programlama sorusu olmadığını biliyorum ama alakalı.
Oldukça büyük bir çapraz platform projesi üzerinde çalışıyorum . Windows'ta VC ++ 2008 kullanıyorum. Linux'ta gcc kullanıyorum. Projede yaklaşık 40 bin dosya var. Windows, aynı projeyi derlerken ve bağlarken Linux'tan 10x ila 40x daha yavaştır. Bunu nasıl düzeltebilirim?
Tek bir değişiklik, Linux'ta 20 saniye ve Windows'ta> 3 dakika artımlı bir derleme oluşturur. Neden? Linux'a 'altın' bağlayıcı bile kurabilir ve o zamanı 7 saniyeye indirebilirim.
Benzer şekilde git Linux'ta Windows'tan 10x ila 40x daha hızlıdır.
Git durumunda git git Windows'u en uygun şekilde kullanmıyor ama VC ++? Microsoft'un kendi geliştiricilerini olabildiğince verimli hale getirmek isteyeceğini ve daha hızlı derlemenin buna çok yol açacağını düşünürdünüz. Belki de geliştiricileri C # 'a teşvik etmeye çalışıyorlar?
Basit bir test olarak, çok sayıda alt klasör içeren bir klasör bulun ve
dir /s > c:\list.txt
Windows üzerinde. Bunu iki kez yapın ve ikinci çalışmanın önbellekten çalışmasını sağlayın. Dosyaları Linux'a kopyalayın ve eşdeğer 2 çalıştırmayı yapın ve ikinci çalıştırmayı yapın.
ls -R > /tmp/list.txt
Aynı özelliklere sahip 2 iş istasyonum var. 12g koçlu HP Z600s, 3.0ghz'de 8 çekirdek. ~ 400k dosyaları olan bir klasörde Windows 40 saniye alır, Linux <1 saniye sürer.
Windows'u hızlandırmak için ayarlayabileceğim bir kayıt defteri ayarı var mı? Ne oluyor?
Derleme süreleriyle ilgili olan biraz ilintili bağlantılar, ille de i / o değildir.
Görünüşe göre Windows 10'da (Windows 7'de değil) bir işlemi kapatmanın genel bir kilit tutması sorunu var . Birden çok çekirdek ve dolayısıyla birden çok işlemle derlenirken bu sorun ortaya çıkar.
/analyse
Bir web tarayıcısını yüklemesidir seçenek olumsuz perf etkileyebilir . (Burada alakalı değil, bilmek iyi)