2016-11-30 6 views
5

मैं एक रिपोर्ट करना चाहता हूं जो स्पष्ट रूप से बताती है कि डेल्फी के साथ निर्मित एक एक्सई का एक विशिष्ट आकार क्यों है।डेल्फी के साथ बनाए गए एक्सई के फाइलसाइज़ का विश्लेषण कैसे करें?

उदाहरण के लिए कुछ इस तरह:

filename: Project1.dpr - total size 100MB 
    Details: 
    - unit1.dcu - 20MB 
    - unit2.dcu - 60MB 
    - libraries.dcu - 20MB 

मैं रिपोर्ट के इस प्रकार को समझने के लिए क्यों एक exe मैं सिर्फ बनाया आकार में 120MB है करना चाहते हैं। यह किसी अन्य एप्लिकेशन से कई फ़ाइलों का उपयोग करता है जो निर्मित होने पर 90 एमबी है। मैंने केवल दो इकाइयों को जोड़ा (और कई हटा दिए गए) और आकार 90 से 120 एमबी तक बदल गया। मैं एक छोटे आकार की उम्मीद कर रहा था (कई हटाए गए इकाइयों पर विचार)।

क्या ऐसा कोई उपकरण है जो पहले से ही ऐसा करता है या आईडीई से इस मुद्दे का अध्ययन करने का कोई तरीका है?

+5

क्या आपने परियोजना विकल्पों से डीबग जानकारी हटा दी है? यह फ़ाइल आकार को कम करेगा, यह लिंकिंग सेक्शन –

+2

के तहत होना चाहिए @villekrumlinde ने exe फ़ाइल में इकाइयों के आकार का विश्लेषण करने के लिए एक टूल लिखा: [delphiunitsizes] (https://code.google.com/archive/p/ delphiunitsizes /)। –

+0

@LURD टूल जो मुझे चाहिए, अगर आप उत्तर पोस्ट करते हैं तो मैं इसे स्वीकार करूंगा। धन्यवाद – LaBracca

उत्तर

0

आप एक छोटे से हेक्स पढ़ने से परहेज नहीं करते हैं, तो आप मानचित्र फ़ाइल सेट कर सकते हैं परियोजना के लिए विकल्पों में करने के लिए सेगमेंट - डेल्फी संकलक - लिंकिंग। आपको यूरेक्स नामक एक टेक्स्ट फ़ाइल मिलेगी। मैप जिसमें शामिल मॉड्यूल और उनकी संबंधित लंबाई की एक सूची शामिल है।

यह आपके exe की सामग्री के मूल विश्लेषण के लिए अनुमति देता है। हालांकि, यह आपके अगले प्रश्न का उत्तर नहीं देगा, "क्या मुझे वास्तव में इन सभी चीजों की आवश्यकता है?" ...

6

मैं एक रिपोर्ट करना चाहता हूं जो स्पष्ट रूप से बताती है कि डेल्फी के साथ निर्मित एक एक्सई का विशिष्ट आकार क्यों है । DelphiUnitSizes:

Ville Krumlinde एक उपकरण है कि नक्शे फ़ाइल, लिंकर द्वारा बनाई पार्स करने से एक exe फ़ाइल में इकाई का आकार रिपोर्ट में लिखा था।

enter image description here

Publics या Detailed को Project Options|Linking|Map File निर्धारित करें और exe की एक पूर्ण निर्माण कर सकते हैं। परिणामी मानचित्र फ़ाइल को DelphiUnitSizes के साथ खोलें।

एरिक ग्रेंज द्वारा MapFileStats एक और समान उपकरण है।


मैं debuginfo बिना EurekaLog उपयोग कर सकते हैं?

EurekaLog documentation से

:

"डिबग जानकारी" (लिंकर पेज, नए डेल्फी)/(पुराने डेल्फी) "TD32 डिबग जानकारी शामिल करें"/"पूर्ण डिबग जानकारी" (सी ++ बिल्डर) - इस विकल्प आपके आवेदन में टीडी 32 प्रारूप में बाहरी डीबगर के लिए डीबग जानकारी एम्बेड करता है। यदि आप "रन"/"प्रक्रिया में संलग्न करें" का उपयोग करते हैं तो आपको इस विकल्प की आवश्यकता हो सकती है और डेल्फी को डीबग जानकारी नहीं मिल सकती है। इसके अलावा, यूरेकालॉग सी ++ बिल्डर में गायब जानकारी को पूरा करने के लिए टीडी 32 जानकारी का उपयोग करता है। ध्यान दें, इस विकल्प को सक्षम करके आपके डेल्फी एप्लिकेशन का आकार 5-10 गुना बढ़ सकता है (सी ++ बिल्डर अलग .tds फ़ाइल में जानकारी लिखता है), जब तक कि आप "अलग टीडीएस फ़ाइल में डीबग जानकारी रखें" विकल्प सक्षम न करें।

और

"मानचित्र फ़ाइल" - आप अपने निष्पादन के साथ एक अलग .map फ़ाइल बनाने के लिए डेल्फी के संयोजक बता इस विकल्प को सक्षम करने से। मानचित्र फ़ाइल में डीबग जानकारी के मानव-पठनीय प्रतिनिधित्व शामिल हैं। इस विकल्प के लिए अलग सेटिंग्स आउटपुट के detalization स्तर को नियंत्रित करता है। आम तौर पर, इसे किसी भी चीज़ में बदलने की आवश्यकता नहीं होती है, जो "ऑफ" या "विस्तृत" से अलग होती है। नक्शा फ़ाइल का उपयोग डीबग जानकारी के प्राथमिक स्रोत के रूप में विभिन्न उपकरणों द्वारा किया जाता है। उदाहरण के लिए, यूरेकालॉग स्वचालित रूप से इस विकल्प को चालू करता है और मैप-फ़ाइल का उपयोग अपने प्रारूप में डीबग जानकारी बनाने के लिए करता है और फिर इसे एप्लिकेशन में इंजेक्ट करता है। यही कारण है कि आपको शायद ही कभी इस विकल्प को मैन्युअल रूप से बदलना होगा।

इसका मतलब है कि नक्शा फ़ाइल exe फ़ाइल में एक तरह से इंजेक्शन दी जाती है, जबकि exe में पूर्ण डीबग जानकारी सहित वैकल्पिक है।

संबंधित मुद्दे