करता है, यह स्पष्ट है कि मैं एक स्मृति रिसाव है:Xcode स्मृति रिसाव से पता चलता है, लेकिन उपकरण जब मैं Xcode से मेरी अनुप्रयोग चलाने
जब मैं स्मृति बढ़ जाती है ViewController एक कस्टम पेश है, लेकिन जब मैं इसे खारिज करता हूं तो यह वापस नहीं जाता है।
तो मैं भी उपकरण 'आबंटन उपकरण का उपयोग कर जाँच की है, लेकिन यह एक अलग कहानी कहता है:
आप देख सकते हैं, उपकरण है कि ViewController, लेकिन स्मृति के उपयोग वापस करने के लिए चला जाता है जब मैं पेश spikes से पता चलता पिछले स्तर जब इसे खारिज कर दिया गया है।
मैंने कम से कम 15 बार अपना कोड चेक किया है और मुझे व्यक्तिगत रूप से कोई मेमोरी लीक नहीं मिलती है और इस प्रकार इंस्ट्रूमेंट्स से सहमत होती है।
deinit {
print("Deinnited \(id)")
}
और सांत्वना के लिए बाहर मुद्रित अपेक्षा के अनुरूप सभी वस्तुओं: मैं अपने सभी वस्तुओं है कि इतनी तरह आवंटित जायेगा में deinit
समारोह को लागू किया।
क्या चल रहा था? मैं उपयोग कर रहा हूँ:
- आईओएस 9.0
- XCode संस्करण 7.0 (7A220)
- स्विफ्ट 2,1
दोनों भागो और प्रोफाइल के स्कीमा "डिबग"
बस जांच कर रहा है, लेकिन आप विचारों को कैसे खारिज करते हैं? क्या निष्क्रिय समय भी है? मैंने पाया है कि उपकरण केवल सॉफ्टवेयर पक्ष को दिखाता है। यह आपको वह राम नहीं दिखाएगा जो अभी तक साफ नहीं हुआ है। जब कोई निष्क्रिय समय नहीं होता है, तो ओएस राम को साफ नहीं कर सकता है। क्या आपके पास सिंगलटन है? या नकदी के लिए साझा उदाहरण? शायद एक मजबूत संदर्भ चक्र। सामान को कमजोर करने की कोशिश करें। बस विचारों को फेंक दें ... –
यदि आप कई बार ओपन-क्लोज़ दोहराते हैं तो क्या आपको एक्सकोड में बढ़ती मेमोरी खपत दिखाई देती है? – Darko
@ डार्को हां। मुझे एक्सकोड में बढ़ती स्मृति खपत दिखाई देती है लेकिन उपकरणों में नहीं –