Önyükleme gcc gibi büyük yazılımları derlemek için daha önemli CPU veya RAM nedir?


11

Yakında yeni bir bilgisayar satın almak istiyorum ve hızlı derleme süreleri için en iyi performans için bir makine istiyorum.

Bu yüzden karşılayabildiğim en yüksek GHz'e sahip dört çekirdekli bir CPU almayı ummalı mıyım yoksa daha yüksek hızlı RAM'e yatırım yapmalı mıyım?

Ne tür RAM kullanmam gerektiğine dair tavsiyeniz nedir?

Grafik performansı önemli değil, bir sürü yazılım derliyor ve matematiksel simülasyonlar yapıyor.

Yanıtlar:


8

Ben de söyleyemem. Bunun yerine hızlı bir SSD sabit diski edinin . Tabii ki uygun bir CPU'ya ve RAM miktarına da ihtiyacınız var, ama evet ...


2
Eh, bir SSD alamadım, bunun yerine 32GB RAM aldım ve tmpfs'de RAM'deki her şeyi derledim .... SSD'den bile daha hızlı =)
Dima

1
Aynı fikir bu: p
Svish

2
Katılmıyorum. Dizüstü bilgisayarım için bir SSD sürücüm var ve derleme hızında çok az fark yarattı. Öte yandan, SSD makinesinde CPU hızını neredeyse üç katına çıkaran yeni bir bilgisayar ve sadece 4GB vs 6GB elde etmek neredeyse 3 kat daha hızlı derlendi. anandtech.com/show/2829/25 , SSD ile fark edilir bir derleyici hızı iyileştirmesi bulamazken blog.hypercomplex.co.uk/index.php/2010/06/…% 23 iyileşme bulur. Yeterli belleğiniz varsa, derlemenin çok az disk kullanımı içerdiği mantıklı görünüyor.
Chris Dragon

1
Başka bir düşünce, bazı derleyicilerin bellek yerine derlemek için çok sayıda geçici dosya kullanmasıdır, bu durumda bir SSD veya ramdisk en çok yardımcı olacaktır. Ancak, modern derleyicilerin bu şekilde tasarlanmasını beklemezdim, şimdi bellek ucuz ve büyük ve sistem azaldığında diske disk belleği işliyor. XCode 3.2.6 (gcc 3 veya 4 tabanlı) kullanarak SSD'nin çok az yararı vardı.
Chris Dragon

SSD, dosya kopyalamayı / taşımayı büyük ölçüde kullanan büyük projeler / çözümler üzerinde önemli bir fark yaratır. Şahsen RAM tmpfs tarzı kullanmadım, ama bunun hakkında iyi şeyler duydum. Daha küçük projeler için, muhtemelen iyidir. Büyük olanlar için mi? Yetersiz olabilir.
16'da

4

Muhtemelen RAM size para için daha büyük bir patlama verecektir. Özellikle büyük uygulamaları derlemek çok G / Ç yoğunluğuna sahiptir ve daha fazla RAM'e sahip olmak, diskte ve diskten daha fazla disk belleği harcayabileceğiniz anlamına gelir. Günümüzde çoğu CPU, özellikle ucuz bir dört çekirdekli ile giderseniz, derlemeniz için bol miktarda CPU gücü sağlayacaktır, ancak RAM'e sahip olmak verilerin ileri geri gitmesine yardımcı olacaktır.

2. düşüncede, matematik simülasyonlarınıza ve inşa süreçlerinize bağlıdır. Paralel hale getirilebilirler mi? Değilse, yeni Intel yongaları (Core i7) çekirdek başına oldukça hızlı olmasına rağmen, daha fazla çekirdek eklemek gerçekten hızlandırmak için hiçbir şey yapmaz.


1
derlemenin disk ile ne ilgisi var?
Arash

2

Yükleri ve RAM yüklerini almak ve geçici depolama için ramdiskler kullanmak söyleyebilirim. Bu derleme hızını önemli ölçüde artıracaktır. Hızlı bir çok çekirdekli CPU da iyi olurdu, ancak çok fazla koçtan daha fazla fayda sağlayacağınızı düşünüyorum. Bazı fikirler için bu makaleye göz atın . İşte 'biraz daha bilgi ve daha bazı s burada . RAM kullanmanın SSD kullanmaktan daha hızlı olacağını düşünüyorum, ancak yanlış olabilirim.


2

Hesaplamalarınız için, işlemciniz çok önemlidir.

Derleme hem işlemcinizi hem de RAM'inizi vurgulayacaktır.

En uygun maliyetli çözümünüzün, karşılayabileceğiniz en iyi CPU'yu ve tercihen de Dört çekirdekli olduğunu düşünüyorum. RAM olduğu kadar ucuz olduğu için (DDR3 artık DDR2 kadar ucuz), küçük paralar için ihtiyaç duyduğunuz kadar RAM'i kolayca takabilirsiniz (newegg'de 180 $ için 16 GB DDR3 ... Overkill, sadece ne kadar ucuz olduğunu göstermeye çalışıyor). Bu yüzden olabildiğince kaliteli bir CPU'ya yapabildiğim kadar yatırım yaparım.


Daha hızlı bir CPU almak için daha fazla para harcamak iyi bir tavsiye. Ama daha fazla çekirdek elde etmek için daha fazla para harcamamak. GCC, tüm derlemelerini tek bir iş parçacığında yapar, bu yüzden asla birden fazla çekirdek kullanmaz.
Isaac Rabinovitch

1
@Isaac Evet, ama can genellikle spawn birden gcc işi aynı anda inşa sistemi, örneğin makeile -jseçeneği. Ayrıca, llvm inanıyorum veya birden çok iş parçacığı kullanarak tek bir dosya derlemek mümkün olacak.
Ponkadoodle

@Wallacoloo Tamam, bağımlılık grafiğinde paralel olan dosyalarınız olduğunda bazen biraz daha fazla hız elde edebilirsiniz. Yine de, bir yapıyı hızlandırmak söz konusu olduğunda ekstra çekirdeklerin oldukça küçük bir faktör olduğuna inanıyorum. İlave çekirdekler yeni CPU'lar içinde standart bir özelliğidir beri Sert, anlatmak için yapmak sadece daha hızlı düşürebilir kadar hız şeyler. Yanlış olduğumu göstermek istiyorsanız, -j ile ve -j olmadan büyük bir derleme yapmayı deneyin.
Isaac Rabinovitch

2
@IsaacRabinovitch Aslında büyük kod üslerine bu konularda çok . Bizim kod temeli derleme üzerinde zaman ile doğru orantılı olarak azalır distcc( make -j8(yerel) kadar make -j30(ağ üzerinden dağıtılan))
Alex

0

Grafikler yardımcı olabilir, çünkü üzerinde bir işlemci bulunan bir grafik kartı ana işlemci üzerindeki yükü azaltabilir. CPU gücü muhtemelen RAM'den daha önemlidir, ancak ikisi de ne kadar iyi olursa, o kadar iyi olursunuz.


İyi bir nokta - sadece süreç CUDA çekirdeklerini kullanabiliyorsa, çoğu kullanmaz.
NoBugs

0

Fiziksel sınırlamalar nedeniyle, çekirdekler yakında her zaman çok daha hızlı olmayacaklar, bu yüzden paralelleştirme gerçekten bir fark yaratmayacaksa, her iki şekilde de pek çok yazılımın neredeyse 4 çekirdeği aşmadığı sürece daha hızlı cpu'nun yatırımına özel silikona geçmeyi planlamıyorsanız , Biliyorum, çünkü tüm sistemimi çok sık derliyorum ve birçok kez kaynak istatistiklerini görmeye bakıyorum. Dahası, geliştiriciler paralelliği artırmak isteseler bile bazen iyi bir şekilde yapmak zordur. CPu'ya yatırım yapmak ya hizmet performansını artırmak için ya da öncelikle verilere dayalı hesaplamalar yapıyorsanız iyidir; daha sonra yürütme davranışını etkileyecek olsa bile; Eğer derlemeleriniz bu kalıplardan bazılarını takip ediyorsa, tartışılması daha zor bir şey olabilir, ancak bunlar oluşturma süreci için bazı özel durumlar; bu nedenle, örneğin grafiksel hesaplamada daha fazla çekirdek hala fark yaratıyor. Bunun dışında G / Ç'yi olabildiğince arttırmak için elinizden geleni yaparlar, diskleri, koçları ve anakartlar içerebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.