2016-10-07 12 views
7

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

यहां छवियों का एक नमूना है:

enter image description here

enter image description here

स्मृति जारी कैसे करता है, तो मैं पहले से ही वस्तुओं में नहीं के बराबर सेट कर सकते हैं।

+0

टिप्पणी के लिए धन्यवाद, हालांकि मैं उपकरणों के माध्यम से आवंटन और रिसाव भी जांचता हूं। ठीक है, जैसा आपने बताया है, ठीक है .... –

+0

* "हम कैसे जांच सकते हैं कि किसी विशेष ऑब्जेक्ट ने स्मृति जारी की है" * और * "अगर मैं ऑब्जेक्ट्स में पहले से ही सेट करता हूं तो स्मृति कैसे जारी कर सकता है" * दो अलग-अलग प्रश्न हैं। –

+0

हां, दोनों के लिए रिलीज मेमोरी प्राप्त करने का केवल एक ही उद्देश्य है। औचित्य के लिए अंतिम पंक्ति। –

उत्तर

3

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

https://stackoverflow.com/a/14891837/5133769 पर उत्तर देखें। हालांकि पुराने उपकरणों के साथ यह समझाया गया था कि यह अभी भी काम करता है।

1

लीक या आवंटन के लिए जांच उपकरणों का उपयोग करना अनुशंसित तरीका है।

आप ब्रेकपॉइंट्स सेट भी कर सकते हैं या डेलोक विधि में लॉग जोड़ सकते हैं।

1

कुछ वस्तुएं बहुत छोटी हैं और मेमोरी प्रोफाइलिंग में देखना मुश्किल हो सकता है जिसे एक जारी किया जाता है। यह टूल ऐप में मेमोरी लीक खोजने के लिए सहायक है। जांचने के लिए कुछ ऑब्जेक्ट स्मृति से जारी किया गया था या नहीं था कि आप dealloc() में उद्देश्य सी के लिए विधि और deinit() स्विफ्ट के लिए विधि में ब्रेकपॉइंट्स या लॉग सेट कर सकते हैं।

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

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