दिलचस्प पोस्ट
php check अगर सरणी में सभी सरणी मानों को दूसरे सरणी से शामिल किया गया है ऐप का अधिकतम उपयोग कितना होता है? मैं कंसोल कैसे साफ़ कर सकता हूं मुझे कैसे पता चल सकता है कि मुझे एक स्ट्रीम से कौन सी छवि प्रारूप मिल रहा है? PHP संख्या प्रारूप क्या यह अपरिभाषित सी व्यवहार है? POST डेटा भेजने के लिए उपयोगकर्ता को संकेत दिए बिना पोस्ट के बाद ब्राउज़र विंडो को पुनः लोड करें PHP पर upload_max_filesize बदलना एंड्रॉइड – मैं एक बटन फ्लैश कैसे बना सकता हूं? सी # से अटैचमेंट्स के साथ ई-मेल भेजा जा रहा है, संलग्नक थंडरबर्ड में भाग 1.2 के रूप में आते हैं ल्यूसीन का उपयोग करके सटीक वाक्यांश खोज? रेल में POST का उपयोग करने के लिए redirect_to JQuery में ईवेंट हैंडलर्स को मैं तर्क कैसे दे सकता हूं? मैं बाबा के साथ फ़ाइल में दोनों stdout और stderr को रीडायरेक्ट कैसे कर सकता हूं? जीसीसी / सीएमके के साथ 64-बिट लिनक्स मशीन पर 32-बिट बाइनरी कैसे संकलित करें I

मेमोरी रिसाव का पता लगाने के उपकरण

क्या ऐप्पल का एक्सकोड विकास पर्यावरण मेमोरी रिसाव का पता लगाने के लिए कोई उपकरण उपलब्ध कराता है?

मैं विशेष रूप से ऐसे उपकरणों में रुचि रखता हूं जो आईफोन एसडीके पर लागू होते हैं। वर्तमान में शौक प्रोग्रामिंग परियोजनाओं के लिए मेरा पसंदीदा प्लेटफ़ॉर्म

कहा उपकरण के लिए दस्तावेज / ट्यूटोरियल बहुत उपयोगी होंगे

Solutions Collecting From Web of "मेमोरी रिसाव का पता लगाने के उपकरण"

एक विशेष रूप से Leaks कहा जाता है और जैसा कि पिछले पोस्टर ने कहा था, इसे चलाने का सबसे आसान तरीका सीधे एक्सोडोड से है:

रन -> प्रदर्शन उपकरण के साथ प्रारंभ करें -> लीक

मेमोरी लीक का पता लगाने में यह बहुत अच्छा लगता है, और मेरे जैसे एक गैर-सी हेड के लिए आसान था जैसे कि मुझे पता लगाना।

ऐप्पल के उपकरण उपकरण को लॉन्च करने के लिए Xcode 6 में Product मेनू में से Profile चुनें। (एप्लिकेशन Xcode एप्लिकेशन के पैकेज सामग्री के अंदर स्थित है: /Applications/Xcode.app/Contents/Applications/ )

एक वाणिज्यिक विकल्प OmniObjectMeter है (ओमनी ग्रुप द्वारा अवरुद्ध)

Clang Static Analyser सी, सी ++ और ऑब्जेक्टिव-सी कोड में कीड़े खोजने के लिए महान है:

Xcode से आईओएस / मैक एप्लीकेशन के मेमोरी रिसाव / प्रदर्शन का पता लगाने के लिए उपकरण का उपयोग करने के लिए लिंक है Xcode से साधन को चलाने के लिए चरण

आप menu -> run -> start with performance tool -> ... पर Xcode के भीतर उपकरण चला सकते हैं menu -> run -> start with performance tool -> ...

क्या ऐप्पल का एक्सकोड विकास पर्यावरण मेमोरी रिसाव का पता लगाने के लिए कोई उपकरण उपलब्ध कराता है?

मैं विशेष रूप से ऐसे उपकरणों में रुचि रखता हूं जो आईफोन एसडीके पर लागू होते हैं।

हाँ। ऐप्पल उन्हें "इंस्ट्रूमेंट्स" कहते हैं (केवल मेमोरी टूल्स से ज्यादा है)

देखें एप्पल का Introduction to Instruments User Guide विशेष रूप से, Locating Memory Issues in Your App देखें यह स्मृति-उन्मुख ट्रेस टेम्पलेट का उपयोग करने के उदाहरण प्रदान करता है

ObjectAlloc और MallocDebug दोनों आप के लिए मदद की होनी चाहिए। यदि आप संपूर्ण एसडीके स्थापित करते हैं, तो वे डेवलपर-> एप्लीकेशन-> प्रदर्शन टूल में पाएंगे

उनके नाम आपको उनके कार्यों के लिए एक बहुत अच्छा सुराग देते हैं, ओए, ऑब्जेक्ट बनाने के लिए ट्रैक करते हैं और एमए एक सामान्य स्मृति रिसाव उपकरण है।

मैंने उन्हें अभी तक आईफ़ोन विकास के साथ की कोशिश नहीं की है, लेकिन मुझे यह विश्वास करना होगा कि वे वहां भी काम करेंगे।

यह मानते हुए कि आपने एडीसी आईफोन डेवलपर साइट के लिए पंजीकृत किया है, यहां पर लिंक का पालन करें: Instruments User Guide

rustyshelf's solution उपयोग करते rustyshelf's solution सुनिश्चित करें कि आप iPhone पर परीक्षण करते हैं और सिम्युलेटर पर नहीं। स्मृति उपयोग नाटकीय ढंग से अलग है

मुख्य मेमोरी लीक टूल्स का एक योग बना दिया: iphone-essential-performance-tools-list

यह एक भी कोशिश करो, Xcode insturments के साथ शुरू करने के लिए एक सरल ट्यूटोरियल

मेमोरी लीक टूल: http://www.raywenderlich.com/2696/

मूल: http://www.raywenderlich.com/23037/how-to-use-instruments-in-xcode

यहां छवि विवरण दर्ज करें

चरण 1. आवंटन उपकरण चुनें

  1. आवंटन के लिए प्रोफाइलिंग टेम्पलेट चुनें:

यहां छवि विवरण दर्ज करें

  1. मुख्य उपकरण इंटरफेस पर, वीएम ट्रैकर पर क्लिक करें, यदि मौजूद है, और Delete कुंजी को दबाएं क्योंकि आपको उस विशिष्ट साधन की आवश्यकता नहीं होगी:

यहां छवि विवरण दर्ज करें

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

चरण 2. अपने उपकरण सेटिंग्स सेट करें

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

अपना लक्ष्य चुनने के लिए, शीर्ष पर स्थित मेरा कंप्यूटर क्लिक करें, अपने डिवाइस पर होवर करें, और उसके बाद उप मेनू से अपना ऐप चुनें:

यहां छवि विवरण दर्ज करें

इसके बाद, एक पैनल होता है, जहां आप देखे जा रहे आवंटन के प्रकार के लिए सेटिंग्स को बदल सकते हैं। यह सुनिश्चित करने के साथ बनाया गया और सतत बुलबुले की जांच की गई है, इससे पहले आपको बहुत कुछ करने की ज़रूरत नहीं है

यहां छवि विवरण दर्ज करें

चरण 3. उपकरण चलाने के लिए रिकॉर्ड दर्ज करें

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

आपको ऐसा कुछ देखना चाहिए:

यहां छवि विवरण दर्ज करें

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

चरण 4. विश्लेषण करें

  1. सबसे पहले मैंने अपने आधाररेखा पर कुल लगातार बाइट्स को मापने के लिए मेरी निरीक्षण सीमा निर्धारित की है वह निरंतर बाइट नंबर सही आवंटन सारांश के तहत स्थित है।

यहां छवि विवरण दर्ज करें

वास्तव में निरीक्षण रेंज सेट करने के लिए, कुंजीपटल शॉर्टकट का उपयोग करें <निचली निरीक्षण सीमा के लिए कमांड < और सही निरीक्षण रेंज के लिए कमांड> हमारे ऐप में, हमारे पास लगभग 20 एमबी की एक आधार रेखा है

यहां छवि विवरण दर्ज करें

  1. फिर, मैं अपनी सही निरीक्षण रेंज को एक बिंदु पर ले जाता हूं जहां मैंने ऐप के माध्यम से फिर से चलाया और हमारे रूट पर वापस आ गया। यहां, आप देख सकते हैं कि मेमोरी एक समान है इसलिए, इसे कुछ और बार करके और अपनी मेमोरी देखने से हमारे बेसलाइन पर वापस आ सकते हैं, आप मान सकते हैं कि कोई बड़ी मेमोरी समस्याएं नहीं हैं।

यहां छवि विवरण दर्ज करें

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

यहां छवि विवरण दर्ज करें

चरण 5. चिह्नित पीढ़ी

यदि आप निरीक्षण रेंज से निपटने के लिए पसंद नहीं करते हैं, तो मार्क जनरेशन नामक एक सुविधा है। उपकरण के दाएं पैनल पर उसके लिए एक बटन है

यहां छवि विवरण दर्ज करें

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

यहां छवि विवरण दर्ज करें

चरण 6. स्टैक ट्रेस देखें

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

यहां छवि विवरण दर्ज करें

गहराई में जा रहे हैं

  1. सबसे बड़ा आवंटन देखें और दाईं ओर वाले तीर पर क्लिक करें। कई बार आपके द्वारा क्लिक किए गए लोगों के अंदर आवंटन होंगे और उनमें से कई आपके लिए अर्थ नहीं करेंगे।

यहां छवि विवरण दर्ज करें

  1. जैसा कि आप एक तीर पर क्लिक करने के बाद विभिन्न आवंटन को उजागर करते हैं, दाएं पैनल पर विस्तारित विस्तार को देखते रहें। अंततः आप कुछ बोल्ड टेक्स्ट में आएंगे जो आपके प्रोजेक्ट में वास्तविक कोड की ओर जाता है, आपको यह बताता है कि समस्या क्या हो सकती है।

यहां छवि विवरण दर्ज करें

  1. यदि आप स्टैक ट्रेस में बोल्ड आइटमों में से एक को डबल-क्लिक करते हैं, तो यह आपको वास्तविक कोड पर ले जाएगा (आप संभालने के लिए आप अपने किसी ऐप पर आवंटन चला चुके हैं)।

यहां छवि विवरण दर्ज करें

  1. इस दृश्य के बारे में बहुत सी उपयोगी चीजें हैं, जो कि आपको दिखाता है कि सही तरीके से पीले टैग्स में से प्रत्येक की कॉल कितनी मेमोरी हो रही है। हर एप अलग है ताकि आप, डेवलपर को यह तय करना पड़े कि क्या हाइलाइट की गई विधि एक समस्या है, जो कुछ आप अनुकूलित कर सकते हैं, या आपके ऐप का सिर्फ एक अपरिहार्य हिस्सा है।

  2. मेरे मामले में, कि यूआईसीलर वेरिएबल कुछ ऐसी चीज है जो लगातार हमारे एप के दौरान इस्तेमाल किया जाता है और इसलिए हमारे ऐप के पूरे जीवन में स्वीकार्य है।

यहां पाया