2012-11-06 10 views
7

के लिए कोई और जगह उपलब्ध नहीं है तो मेरे ऑब्जेक्टिव-सी एप्लिकेशन को लगभग 8 घंटे तक चलाने के बाद, अंत में मेरी मशीन इस त्रुटि संदेश को प्रदर्शित करेगी। लेकिन इंस्ट्रूमेंट्स का उपयोग करके 24 घंटों के बाद, यह केवल 8% उपकरणों के बिना 8 घंटे में ऐप कर सकता है।आपकी मैक ओएस एक्स स्टार्टअप डिस्क में एप्लिकेशन मेमोरी

मेरा आवेदन मूल रूप से इनपुट ज्यामिति लेता है और एक नेविगेशन जाल बनाता है।

मेरा प्रश्न: मैं कैसे पता लगा सकता हूं कि मेरी समस्या कहां है? मुझे यकीन है कि मेरे आवेदन में कहीं भी मैं स्मृति का अनुरोध कर रहा हूं और कभी इसे मुक्त नहीं कर रहा हूं। मैंने विश्लेषण किया, जो एक रिसाव मिला, लेकिन महत्वपूर्ण नहीं है और मैंने इसे ठीक कर दिया है।

मैं अभी आवंटन/रिसाव के लिए उपकरण चला रहा हूं लेकिन 16 मिनट के बाद मुझे कुछ भी चमक नहीं दिख रहा है (मैं इसे जारी रखने जा रहा हूं)।

यहाँ है, जहां यह है का एक स्नैपशॉट है अब तक पर: Instruments

किसी को भी मैं इस और कैसे डीबग कर सकते हैं पर कोई विचार है? मैं इसे लगभग 20 घंटों तक चलाने में सक्षम होना चाहता हूं, इसलिए यह अनिवार्य रूप से मर रहा है बनाम बनाम:/

अग्रिम धन्यवाद!

+0

क्या आपको यकीन है कि एक रिसाव है? क्या आपका एल्गोरिदम बस डेटा संरचनाएं उत्पन्न कर सकता है जिसका आकार उपलब्ध वर्चुअल मेमोरी से अधिक है? एक 64-बिट प्रोग्राम * पते * वास्तव में स्मृति की एक चौंकाने वाली राशि को संबोधित कर सकता है, लेकिन इसका मतलब यह नहीं है कि यह वास्तव में * मनमाने ढंग से बड़ी मात्रा में आवंटित कर सकता है। आप अपने डेटा को कितना बड़ा उम्मीद करेंगे, मोटे तौर पर? आपने यह कैसे निर्धारित किया? –

उत्तर

9

आप एक चैंप की तरह स्मृति लीक कर रहे हैं!

  • आवंटन साधन में "केवल लाइव आवंटन ट्रैक" बारी

  • पर "ट्रैक संदर्भ गिनती घटनाओं" (या जो भी यह कहा जाता है)

  • अपने सत्र फिर से चलाने के लिए और बारी प्रकार "कुल मिलाकर बाइट" स्तंभ शीर्ष पर

  • शुरू, सबसे स्मृति भूख आवंटन, और से छोटा तीर के माध्यम से क्लिक करें देखने के लिए जहां उन सभी आवंटन से आ रहे हैं, इस सूची में नीचे जारी रखने के लिए ...

यह Heapshot विश्लेषण और, इस प्रकार की तरह एक बहुत, this weblog article मैंने कुछ समय पहले लिखा था उपयोगी हो सकता है है।

+0

तो मैं इस विधि को आजमा रहा हूं, और मैंने इसे 23 घंटों तक चल रहा है और इसे पूरा करने के लिए 1131 कार्यों में से 14 को पूरा कर लिया है। आम तौर पर सभी 1131 कार्यों में कुल 20 मिनट लगते हैं। डीबग करने के तरीके पर कोई सुझाव है कि यह वास्तव में सभी कार्यों को पूरा कर सकता है:/उपकरण अभी भी @ 100% सीपीयू (800% से बाहर) चल रहा है, लेकिन यह अभी नहीं रख सकता है मुझे लगता है कि – Geesu

+0

यहां परिणामों का एक लिंक है दूर: https://dl.dropbox.com/u/15806454/dump/stackoverflow_instruments.png – Geesu