2013-05-04 6 views
6

inşa azaltın. Kütüphane yoğun olarak Boost'u kullanıyor.G ++ 4.6 kullanılarak artırımı bellek kullanımı ben kısıtlı bellek kaynakları ile bir Linux sistemi üzerinde bir C++ kütüphanesi inşa etmeye çalışıyorum

Derleme hızıyla ilgili olarak burada ve diğer web sitelerinde çeşitli konular gördüm, ancak G ++'yı hız kaybetmek anlamına gelse de bellek kaynaklarında daha az zorlayıcı hale getirmek için ipuçları ve püf noktaları ile ilgileniyorum.

DÜZENLEME: Ben sadece hız inşa arttırır, hangi Boost precompiled başlıklarını kullanarak çalıştı, ancak yine de bellek kabaca aynı miktarda gerektirir ettik.

+1

geliyor. Bu genellikle iyi bir fikir değildir. Bunun yerine, aynı şekilde kısıtlanmayan bir platformdan çapraz derleme kullanın ve programı oluşturulduktan sonra platforma aktarın. –

+0

Korkarım ki bu kütüphane uygulamasını değiştirmeden, özellikle "artırma" yöntemini kullanmadan mümkün değil. Derleme zamanında yüksek bellek kullanımı genellikle çok sayıda şablon örneği olduğu anlamına gelir. –

+0

@JoachimPileborg sayılı Sadece bir süreçler onu yükseltmek için çok mütevazı bir sunucu var. – cyberguijarro

cevap

5

Sen Çöp toplayıcı ayarlarıyla oynamak zorunda. Parametreler ggc-min-expand ve ggc-min-heapsize'dur. Ayrıca yığın boyutunu (RLIMIT_AS) azaltmak için ulimit 65536 (ya da herneyse) ile ulimit ayarlayın. gcc manual here

İyi bir ortamda bu konuda bilgi

sürü 8192 0 ve ggc-min-heapsize param için ggc-min-genişletmek param ayarlayabilir ve bununla denemek için olabilir ...

CXXFLAGS = "$ (CXXFLAGS) --param ggc-min-expand = 0 - param ggc-min-heapsize = 8192" veya benzeri bir değer. Eğer gömülü platformda inşa etmeye çalışıyoruz gibi