2010-10-05 5 views
6

मान लें कि मेरे पास एक दर्जन विभिन्न मॉड्यूल के साथ एक प्रोजेक्ट है जो एक परिणामस्वरूप डीएलएल उत्पन्न करता है, मैं इसका विश्लेषण कैसे कर सकता हूं ताकि मैं वास्तविक फ़ाइल आकार की पहचान कर सकूं प्रत्येक मॉड्यूल/कार्यों का योगदान? मुझे पता है कि रिलीज बिल्ड के साथ असंभव हो सकता है जहां अधिक जानकारी छीन ली गई है, लेकिन अगर मेरे पास पूर्ण स्रोत है और डीबग बिल्ड कर सकता है तो कैसे?कोड bloats के लिए .exe/.dll (विंडोज पीई) फ़ाइलों का विश्लेषण करें

इसके अलावा, यदि कहीं भी परिभाषित बड़े स्थैतिक चर हैं, तो क्या कोई तरीका है कि मैं उन्हें आसानी से ढूंढ सकता हूं?

बोनस प्रश्न: लिनक्स ईएलएफ फाइलों के बारे में कैसे?

+0

डंपबिन को IMHO आपको बड़ी वैश्विक/सांख्यिकी दिखाएं। – valdo

+0

@ वाल्डो कोई विवरण कैसे करें इसे कैसे करें? मैंने थोड़ा सा खोज लिया है और इसे समझने में प्रतीत नहीं होता। – kizzx2

उत्तर

4

जब भी मैं ब्लोट की पहचान करने में शामिल हूं, मैं आमतौर पर विंडोज पर dumpbin से शुरू करता हूं। आम तौर पर dumpbin के माध्यम से प्रत्येक ऑब्जेक्ट मॉड्यूल की जांच करने के लिए एक उपकरण लिखकर आउटपुट का विश्लेषण करें। यह एक पुनरावृत्ति प्रक्रिया हो जाता है और उचित समय ले सकता है।

पीडीबी Sizer के साथ डीबग बिल्ड के लिए उपयोगी रिपोर्ट तैयार कर सकते हैं।

एड्रियन के यहां कुछ उपयोगी मार्गदर्शन है। Minimizing Code Bloat for Faster Builds and Smaller Executables और सहायता के लिए SymbolSort नामक एक उपकरण। सी # में स्रोत को सिंबलसॉर्ट के साथ शामिल किया गया है ताकि यह शुरू करने के लिए एक अच्छी जगह हो सकती है कि सिंबलसॉर्ट मदद नहीं करता है।

ईएलएफ के लिए nm और objdump का उत्पादन एक अच्छा प्रारंभिक बिंदु है।

+0

यह बिल्कुल शानदार है! उनके पास बक्षीस के लिए यह बेवकूफ 24 घंटे की नीति है: पी – kizzx2

+0

बस 'एनएम-एस' पर एक नज़र डाली। विंडोज़ पर हल करने के लिए कितनी आसान समस्या है: पी – kizzx2

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