2011-10-24 23 views
6

Linux O.S.'i kullanan bazı aygıtlarda S/W geliştiriyorum. Yani, kullandığım kitaplıkların boyutu (RAM/ROM) çok önemlidir.Linux'taki kitaplıkların boyutunu ölçün

Yazılımımın gerektirdiği RAM/ROM'u nasıl kolayca hesaplayabilirim? (Kullandığım kütüphaneler dahil). Ben deneyimli Linux geliştirici için çok kolay bir soru olduğunu düşünüyorum.

+1

Bu aslında zor bir sorudur. Eğer programınız dinamik bellek tahsisi 'malloc' kullanıyorsa veya herhangi bir belirgin çağrı düzenine sahip değilse (özellikle de tekrarlama varsa), teorik olarak yığın/yığın için ne kadar RAM gerekeceğini tahmin etmek bile imkansızdır. Tipik gömülü programlar için yığın gereksinimlerini belirlerken makul derecede iyi çalışan analizörler vardır, ancak çoğu zaman ucuz olmazlar. – Gilles

cevap

3

Run

size <object> 

veya

size <archive> 

veya

size <shared-object> 

. Metin programÛmÛzÛn olduğu

Size bir

text data  bss  dec  hex filename 

tablo verecektir: (veya çapraz derleme konum durumunda "hedef-" boyutu kol-gcc kullanıyorsanız boy kol) boyut, başlangıç ​​globals ve veri salt okunur veri bss.

Bu soruya yanıt verirken, muhtemelen son bağlantıyı yaparken bölümleri el ile mevcut belleklere yerleştireceğiniz belirli bir LdScript (ld as linker kullanırken) kullanmak isteyeceksiniz.

+1

Bu aletin sadece statik belleği görüntülediğini unutmayın. Çalışma zamanı belleği kullanımı daha büyük olacaktır. Ne kadar büyük, programa ve yığının ve yığının kullanımına bağlıdır. –

+0

Ayrıca paylaşılan kütüphaneleri kontrol etmek için "ldd" yi de kullanabilirsiniz. "Ldd" ve "size" ile, kütüphaneler dahil ne kadar ROM/RAM kullandığını tahmin edebilirim. – Wonil