2011-07-03 11 views
7

का आकार किस प्रकार बढ़ता है यह पता लगाने के लिए कि मैं एमएस विजुअल स्टूडियो एक्सप्रेस 2010 में अपना पहला 'डेमोसीन' एप्लिकेशन लिखने की कोशिश कर रहा हूं। अचानक मुझे एहसास हुआ कि मेरी बाइनरी पूरी तरह से 16kb से ~ 100kb तक विस्तारित है। अनुकूलित आकार के लिए रिलीज संस्करण। मेरा लक्ष्य आकार 64k है। किसी भी तरह से पता लगाने के लिए बाइनरी "ब्राउज" करने का कोई तरीका है, कौन सी विधियां बहुत सारी जगह लेती हैं, और मुझे फिर से लिखना चाहिए? मैं वास्तव में जानना चाहता हूं कि मेरी बाइनरी क्या है।'एक्सई'

जो मैंने वेब में पाया, उससे VS2010 demoscenes के लिए सबसे अच्छा कंपाइलर नहीं है, लेकिन मैं अभी भी समझना चाहता हूं कि मेरी .exe फ़ाइल के अंदर क्या हो रहा है।

उत्तर

5

मुझे लगता है कि आपके पास एमएसवीसी आपके लिए एक मैप फ़ाइल उत्पन्न करनी चाहिए। यह एक फ़ाइल है जो आपको आपके निष्पादन योग्य में विभिन्न कार्यों के पते बताएगी। लगातार पते के बीच अंतर आपको बताएगा कि फ़ंक्शन कितना स्थान लेता है। नक्शा फ़ाइल बनाने के लिए, /MAP लिंकर विकल्प जोड़ें। अधिक जानकारी के लिए, देखें: http://msdn.microsoft.com/en-us/library/k7xkk3e2(v=VS.100).aspx

+0

बहुत बहुत धन्यवाद, यह पूरी तरह से काम किया। – Andrew

+0

जेनरेट की गई मानचित्र फ़ाइलों को पार्स करने के लिए एक शानदार टूल मिला [लिंक] (http://code.google.com/p/mapfile/)। हो सकता है कि कोई भी इसे उपयोगी लगेगा। – Andrew

+0

बढ़िया! मुझे खुशी है कि यह आपके लिए काम कर रहा है। –

2

आप निष्पादन योग्य से बहुत सारी अनावश्यक सामग्री को बंद कर सकते हैं और mew जैसी उपयोगिताओं के साथ इसे संपीड़ित कर सकते हैं।

+0

बहुत बहुत धन्यवाद, मैं इस उपयोगिता को आजमाउंगा। – Andrew

0

वृद्धि के कारण क्या देखने के लिए अपने संस्करण contol सिस्टम का उपयोग करें। आगे बढ़ते हुए, आईडी रात के निर्माण के दौरान निर्मित एक्सई आकार लॉग करें। और न भूलें कि आप संकलक सेटिंग्स के साथ न्यूनतम आकार के लिए अनुकूलित कर सकते हैं।

2

मैं निष्पादन योग्य आकार की जांच (हालांकि demoscene प्रकार बातों के लिए नहीं) के लिए यह उपयोगी पाया है: http://aras-p.info/projSizer.html

मैं यह कहना होगा: अगर तुम सब पर मानक पुस्तकालय का उपयोग कर रहे तो तुरंत बंद करो। यह एक बड़ा कोड ब्लोटर है। उदाहरण के लिए, प्रत्येक अद्वितीय उपयोग std::sort लगभग 5 केबी जोड़ता है और कई मानक कंटेनरों के लिए समान संख्याएं होती हैं (बेशक, यह निर्भर करता है कि आप कौन से फ़ंक्शंस का उपयोग करते हैं, लेकिन आम तौर पर वे बहुत सारे कोड जोड़ते हैं)।

इसके अलावा, मैं डेमो दृश्य में नहीं हूं, लेकिन मेरा मानना ​​है कि लोग अपने निष्पादन योग्य को संपीड़ित करने के लिए Crinkler का उपयोग करते हैं।

+0

ऐसा लगता है कि यह वीएस -2010 से पीडीबीएस के साथ काम नहीं कर रहा है, लेकिन वैसे भी धन्यवाद। अगर मैं वीएस -2008 पर स्विच करूंगा, तो यह प्रोग्राम वास्तव में सहायक होगा। – Andrew

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