दिलचस्प पोस्ट
क्या C ++ का समर्थन संकलन समय काउंटर? एंड्रॉइड स्टूडियो में मैं एक पुस्तकालय परियोजना कैसे जोड़ूं? जावास्क्रिप्ट के साथ एक आइफ्रेम स्क्रोल करना? इस गतिविधि में पहले से ही विंडो सजावट द्वारा एक एक्शन बार दिया गया है MySQL एक्सटेंशन को बहिष्कृत किया गया है और भविष्य में निकाल दिया जाएगा: इसके बजाय mysqli या PDO का उपयोग करें PHP कार्यों के लिए बिग-ओ की सूची इकाई फ़्रेमवर्क का उपयोग कर केवल एक फ़ील्ड को कैसे अपडेट करें? मेटप्ललिब में कई सबप्लेट के साथ सबप्लॉट आकार / रिक्तियां सुधारें कैसे एक फलक एक और करने के लिए तार करने के लिए JavaScript में ऑब्जेक्ट की एक सरणी से डुप्लिकेट निकालें क्या मुझे जावा स्विंग में सेट के उपयोग से बचने के लिए (पसंदीदा | अधिकतम | न्यूनतम) आकार तरीकों से बचाना चाहिए? UITableView हेडर अनुभाग को अनुकूलित करें जावा में एक कन्स्ट्रक्टर निजी हो सकता है? जावा कम्पाइलर द्वारा अनुकूलन कुछ अच्छा पायथन ओआरएम समाधान क्या हैं?

डेल्फी के लिए प्रोफाइलर और मेमोरी विश्लेषण टूल

मैंने हाल ही में डेल्फी 4 से डेल्फी 2009 में अपग्रेड किया था। डेल्फी 4 के साथ मैं प्रीमोज़ गैब्रिजेलिक द्वारा जीपीप्रोफाइल का इस्तेमाल एक ट्रेलर के रूप में और स्मृति विश्लेषण के लिए टर्बो पावर द्वारा स्मृति विश्लेषण और लीक डिबगिंग के लिए किया था। दोनों ने मेरे लिए अच्छी तरह से काम किया लेकिन अब मुझे नए उपकरणों की जरूरत है जो कि डेल्फी 200 9 के साथ काम करेंगे।

एक विस्तृत मार्जिन द्वारा डेल्फी के लिए प्रोफ़ाइलिंग / विश्लेषण टूल में नेता स्पष्ट रूप से ऑटोमेटेडक्यूए द्वारा एक्वाइम है उन्होंने हाल ही में एटानस सोयानोव द्वारा Memproof भी गबन किया , जिसे मैं समझ गया एक उत्कृष्ट और मुफ्त स्मृति विश्लेषण उपकरण था, और इसकी कार्यक्षमता को एक्यूकम में शामिल किया गया था। लेकिन एक्यूमटाइम एक व्यक्तिगत प्रोग्रामर के लिए बहुत महंगा है। यह वास्तव में लागत 2009 की लागत डेल्फी से अधिक लागत!

तो मेरा सवाल है: क्या डेल्फी के वर्तमान संस्करणों में प्रोफाइलिंग और मेमोरी विश्लेषण करने के लिए कोई अन्य कम खर्चीला विकल्प हैं कि आप खुश हैं और सुझाते हैं, या क्या मुझे गोली मारनी चाहिए और एक्यूकम के लिए बड़ी रकम का भुगतान करना चाहिए?


एडेनम: ऐसा लगता है कि शुरुआती उत्तरदाता यह संकेत दे रहे हैं कि फास्टएमएम प्रबंधक डेल्फी में पहले से ही शामिल है, मेमोरी लीक को खोजने के लिए बहुत अच्छा है।

तो फिर, क्या स्रोत कोड प्रोफाइलिंग के लिए कोई अच्छा विकल्प है?

एक मैं के बारे में उत्सुक हूँ माइकल एडॉल्फ द्वारा प्रोडेलफी है जो कि एक्यूकम की कीमत एक छः से कम है क्या तुम इसका इस्तेमाल करते हो? क्या एकटाइम छह गुना ज्यादा भुगतान करता है?


एडेनम 2: मैंने एकटाइम और प्रोडेलफी दोनों के परीक्षण संस्करण डाउनलोड किए हैं I

एकटाइम थोड़ी मुश्किल था और पहली बार में थोड़ा भ्रमित था। इसे हुक करने के लिए आवश्यक कुछ चाल ढूंढने में कुछ घंटे लग गए।

प्रोडेलफी बहुत जीपीप्रोफाइल की तरह थी जिसका उपयोग मुझे करने के लिए किया गया था लेकिन इसकी खिड़कियां बरबाद और भ्रामक हैं और यह काफी नहीं है जितना GpProfile।

मुझे बड़ा अंतर लगता है:

  1. प्रो डेलफी आपका कोड बदलता है एक्यूकम नहीं है कुछ गलत हो जाने पर कोड बदलना आपके डेटा को दूषित कर सकता है, लेकिन जीपीप्रोफाइल के साथ मेरा अनुभव यह था कि यह मेरे साथ कभी नहीं हुआ। एक्वाइम के लिए प्लस एक

  2. ProDelphi के लिए आपको अनुकूलन बंद करना आवश्यक है लेकिन जो आप प्रोफ़ाइल में करना चाहते हैं वह आपका प्रोग्राम अनुकूलन के साथ है, जिस तरह से इसे चलाया जाएगा। एक्वाइम के लिए प्लस एक

  3. प्रो डेलिफ़ी केवल फ़ंक्शन या प्रक्रिया के लिए नीचे प्रोफ़ाइल कर सकते हैं AQTime व्यक्तिगत लाइनों के लिए नीचे जा सकते हैं एक्वाइम के लिए प्लस 2

  4. प्रोडाल्फी के पास एक मुफ्त संस्करण है जो 20 रूटिनों को दिखाएगा, और इसकी प्रो संस्करण $ 100 अमरीकी डालर से कम की लागत एक्यूकम $ 600 अमरीकी डालर है। प्रोडेलफी के लिए प्लस 4

स्कोर अब 4-4 है तुम क्या सोचते हो?


एडेनम 3: प्रीमोज गैब्रिजेलिसिक जीपीप्रोफाइल फिर से काम करने की योजना बना रहा है। नीचे दिए गए कुछ प्रतिक्रियाओं पर उनकी टिप्पणी देखें वह गेट के रूप में स्टैक ओवरफ्लो पर


एडेनम 4: ऐसा लगता है कि सभी के बाद एक प्रोफ़ेसर समाधान हो सकता है। नीचे बताया गया आंद्रे के ओपन सोर्सल asmprofiler देखें

वेब के समाधान से एकत्रित समाधान "डेल्फी के लिए प्रोफाइलर और मेमोरी विश्लेषण टूल"

मूल्य के लिए, आप फास्टएमएम 4 को स्मृति ट्रैकर के रूप में नहीं हरा सकते डेल्फी के साथ अभी तक शक्तिशाली और अच्छी तरह से एकीकृत करने के लिए उपयोग करना सरल है
मुझे लगता है कि आप जानते हैं कि, बिना डाउनलोड किए, कुछ भी स्थापित या बदलते हुए, बस इस पंक्ति को डालना

ReportMemoryLeaksOnShutDown := True; 

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

विशेष रूप से रूपरेखा के लिए, हमारे पास एकुटाइम है

GpProfile के लिए, आप एक अद्यतन के लिए SO पर कोशिश कर सकते हैं और बग gabr … या जा सकते हैं और अपने आप को gpProfile अपडेट करें क्योंकि यह ओपन सोर्स है । 😉

मैंने डेल्फी के लिए एक ओपन सोर्स प्रोफाइलर बनाया है: http://code.google.com/p/asmprofiler/

यह सही नहीं है, लेकिन यह मुफ़्त और खुला स्रोत है 🙂

इसका मुख्य कारण यह था क्योंकि मैं एक सटीक कॉल ट्री खो गया था। उदाहरण के लिए, प्रोडेलफी केवल सभी कॉल्स के सारांश और कुल संख्या को संग्रहीत करता है, आप देख नहीं सकते हैं कि किसी विशिष्ट समय के दौरान क्या विशिष्ट प्रक्रिया (या समय अवधि) कॉल करता है। और इसमें एक समय चार्ट है, इसलिए आप देख सकते हैं कि समय के साथ कॉल अवधि कैसे बदल गई।

एरिक ग्रेंज के नमूनाकरण प्रोफाइलर को भी देखें

मैं प्रोफाइल के लिए एक्वाइम के साथ बहुत खुश हूं।

दोनों GpProfile और AQTime उपयोग करने के बाद मैंने पाया है कि विधि कॉल क्या बोतल गर्दन पैदा कर रहा है दोनों में प्रभावी हो दोनों।

हालांकि एक्यूटीम मुझे यह भी बता सकता है कि मेरे स्रोत कोड में कोई भी बदलाव किए बिना कोड की कौन सी लाइन हो रही है (हालांकि यह TD32 डीबगिंग और डीबग डीक्यूस के साथ सबसे अच्छा काम करता है)।

मैंने हाल ही में 30x (एक आंतरिक पुस्तकालय फ़ंक्शन के खराब उपयोग की वजह से) को नियमित करने के लिए इसका इस्तेमाल किया था

हालांकि मुझे खुद के लिए भुगतान करने के लिए नहीं था!

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

एक प्रोफ़फ़ेलर के लिए आप गुरुक सॉफ्टवेयर से स्मार्टइन्सटेस्ट का प्रयास कर सकते हैं। मैंने कभी जीपीप्रोफाइल का इस्तेमाल नहीं किया, लेकिन अपनी फीचर सेट पर तेजी से नजर डालने से मुझे स्मार्टइन्सपेक्ट की याद दिला दी दिलचस्प है कि यह एक प्रोफाइलर होने का दावा नहीं करता है, लेकिन ऐसा लगता है कि जीपीप्रोफाइल (जब तक कि मुझे कुछ याद आ रहा है) के रूप में ज्यादा नहीं है। यह डेल्फी 2009 का समर्थन करता है और इसमें निशुल्क परीक्षण होता है और थोड़ा सस्ता होता है तो एकटाइम।

मैं आपके साथ ProDelphi के इंटरफेस के बारे में सहमत हूं, लेकिन यह एक अच्छा काम करता है कि हम इसके साथ रहने के लिए खुश हैं जब हमें एक महत्वपूर्ण प्रदर्शन समस्या है, तो हमें बहुत ही कभी-कभी प्रोफ़ाइल की आवश्यकता होती है, और यह हमेशा समस्या को बहुत तेज़ी से ढूंढने में मदद करता है पैसे के लिए बहुत अच्छा मूल्य है, और माइकल इसे नए संस्करणों के लिए अद्यतन रखने के बारे में बहुत अच्छा लगता है

एक बात मैं सुझाव दूंगा क्योंकि यह कोड को सम्मिलित करने की आवश्यकता है, क्योंकि किसी भी प्रकार के VCS में सभी प्रासंगिक कोड अमूल्य हैं जब हमें प्रोफ़ाइल की आवश्यकता होती है, तो हम:

  • इन सभी संबंधित फाइलों को चेक करें
  • उन्हें सब बाहर की जाँच करें
  • हमें जिस रूपरेखा की ज़रूरत है, उसके बाद
  • सभी चेकआउट रद्द करें, प्रभावी रूप से हम कहाँ थे वापस रोलिंग।

क्या किसी ने डेल्फी एरिया में प्रोफाइलर घटक का प्रयास किया है? यह स्रोत के साथ फ्रीवेयर है और यह लिखावट कहते हैं:

यदि आप अपने कोड के निष्पादन के समय को मुक्त करने के लिए एक आसान और सटीक तरीका तलाश रहे हैं, तो आपके लिए क्या जरूरत है TProfiler TProfiler एक गैर दृश्य और डीबगिंग घटक है जो आपको अपने कोड में नामित टाइमर बनाने में सक्षम बनाता है।

टीप्रॉफेलर के प्रत्येक घड़ी निम्नलिखित जानकारी प्रदान करता है:

टाइमर सक्रिय होने के कई गुना (हिट गणना) कुल निष्पादन समय प्रत्येक हिट पर औसत निष्पादन समय पहली हिट पर निष्पादन समय अंतिम हिट पर निष्पादन समय न्यूनतम निष्पादन समय के साथ हिट अधिकतम निष्पादन समय के साथ हिट

यह सच है, प्रोफाइलिंग के लिए मैं 'Primoz GpProfile याद आती है, और एक अच्छा प्रतिस्थापन नहीं मिला है मैंने एक बार एक्यूटाइम की कोशिश की, लेकिन इसकी कीमत के लिए बहुत खुश नहीं था।

मेमोरी लीक और चक्रीय मेमोरी एक्सेस के नज़र रखने के लिए हालांकि मैं फास्टएमएम 4 से ज्यादा खुश नहीं हो सका।

मैं एक लंबे समय के लिए प्रॉडली का उपयोग कर रहा हूं और यह मेरी आवश्यकताओं को पूरा करता है।

मैं यह प्रदान करता है डेटा का उपयोग करके सिस्टम प्रदर्शन में सुधार में शानदार परिणाम प्राप्त करने में सक्षम रहा हूँ

छोटी परियोजनाओं के लिए मुफ्त संस्करण ठीक है

बड़ी परियोजनाओं के लिए, आपको (सशुल्क) प्रो संस्करण की आवश्यकता होगी

इस पुराने उत्तर में "फास्टएमएम 4 मेमोरी मैनेजर का उल्लेख किया गया है (" डेल्फी एप्लिकेशन के मेमोरी फ्रेग्मेंटेशन को मॉनिटर या विज़ुअलाइज़ कैसे करें ") उन सभी आवंटियों की एक सूची रखता है जिन्हें रन टाइम पर पूछताछ किया जा सकता है (और इसमें शामिल डेमो एप्लिकेशन का उपयोग करके ग्रिड में प्रदर्शित किया जा सकता है)। यह वास्तव में कौन सा ऑब्जेक्ट लीक नहीं दिखाता है, क्योंकि आंकड़े प्रति ब्लॉक आकार के होते हैं। लेकिन यह उत्पादन में अनुप्रयोगों की लंबे समय तक निगरानी के लिए उपयोगी हो सकता है, उदाहरण के लिए सर्वर या सेवाओं मैं वर्तमान में इसे 'विज़ुअलएमएम' ऐड-ऑन के रूप में एक (वाणिज्यिक) वेब एप्लिकेशन सर्वर ढांचे में एकीकृत कर रहा हूं।