2011-10-24 15 views
6

में पुस्तकालयों का आकार मापें मैं कुछ डिवाइस के लिए एस/डब्ल्यू विकसित कर रहा हूं जो लिनक्स ओएस का उपयोग करता है तो, पुस्तकालयों (रैम/रोम) का आकार जो मैं उपयोग करता हूं वह बहुत महत्वपूर्ण है।लिनक्स

मैं अपने सॉफ़्टवेयर द्वारा आवश्यक RAM/ROM की आसानी से गणना कैसे कर सकता हूं? (मैंने इस्तेमाल पुस्तकालयों सहित)। मुझे लगता है कि अनुभवी लिनक्स डेवलपर के लिए यह बहुत आसान सवाल है।

+1

यह वास्तव में एक कठिन सवाल है। यदि आपका प्रोग्राम गतिशील स्मृति आवंटन 'मॉलोक' का उपयोग करता है या इसमें नॉनट्रिविअल कॉल पैटर्न (विशेष रूप से यदि यह रिकर्सन है) है, तो सैद्धांतिक रूप से यह अनुमान लगाने के लिए असंभव है कि ढेर/ढेर के लिए कितनी रैम की आवश्यकता होगी। ऐसे विश्लेषक हैं जो सामान्य एम्बेडेड प्रोग्राम के लिए स्टैक आवश्यकताओं को निर्धारित करने के लिए उचित रूप से अच्छी तरह से काम करते हैं, लेकिन वे अक्सर सस्ते नहीं आते हैं। – Gilles

उत्तर

3

भागो

size <object> 

या

size <archive> 

या

size <shared-object> 

। (या "target-" आकार मामले में आप पार संकलित कर रहे हैं: हाथ आकार आप हाथ-जीसीसी उपयोग कर रहे हैं)

यह आपको एक

text data  bss  dec  hex filename 

तालिका दे देंगे जहां पाठ प्रोग्राम है आकार, शुरुआती ग्लोबल्स बीएसएस और केवल पढ़ने के लिए डेटा डेटा।

हालांकि यह आपके प्रश्न का उत्तर देता है, तो आप शायद एक विशिष्ट एलडीस्क्रिप्ट (लिंकर के रूप में एलडी का उपयोग करते समय) का उपयोग करना चाहेंगे, जहां आप अंतिम लिंक करते समय अनुभागों को मैन्युअल रूप से उपलब्ध यादों में रखेंगे।

+1

ध्यान दें कि यह टूल केवल स्थिर स्मृति प्रदर्शित करता है। रन-टाइम मेमोरी उपयोग बड़ा होगा। कार्यक्रम पर कितना बड़ा निर्भर करता है और यह ढेर और ढेर का उपयोग करता है। –

+0

साझा पुस्तकालयों की जांच के लिए "ldd" का भी उपयोग कर सकते हैं। "Ldd" और "आकार" के साथ, मैं अनुमान लगा सकता हूं कि पुस्तकालयों सहित कितने रोम/रैम का उपयोग किया जाता है। – Wonil