2011-06-24 8 views
6

मैं अपने आईफोन/आईपैड ऐप को ट्यून करने का प्रदर्शन कर रहा हूं, ऐसा लगता है कि सभी मेमोरी मुक्त नहीं होनी चाहिए। उपकरणों में, जब मैं अपने सिम्युलेटर में मेमोरी चेतावनी अनुकरण करता हूं, तो बहुत सारे "मॉलोक" प्रविष्टियां बाकी होती हैं; उनके बारे में क्या है? क्या मैं उनसे छुटकारा पा सकता हूं, उनका क्या मतलब है/वे किसके लिए खड़े हैं?आईफोन/इंस्ट्रूमेंट्स: ऑब्जेक्ट सारांश में "malloc" प्रविष्टियों के बारे में क्या है?

धन्यवाद एक बहुत,

स्टीफन

enter image description here

उत्तर

4

किसी भी समय, अपने अनुप्रयोग एक स्मृति चेतावनी (और बाद में स्मृति प्राप्त करने के बाद भी, रहने वाले वस्तुओं की एक (विशाल) नंबर होगा ऑपरेटिंग सिस्टम द्वारा वसूली)। तो, यह बहुत आम है कि आप उन मॉलॉक्स में से कई को भी देखेंगे जिन्हें आप देख रहे हैं।

वे अपने आप में एक संकेत नहीं हैं कि स्मृति आवंटन के साथ कुछ गलत है, लेकिन संभवतः केवल यह तथ्य कि आपका प्रोग्राम चल रहा है।

इसके अलावा S.O. topic to learn more about the object allocation tool पर एक नज़र डालें।

इसके अलावा, स्मृति आवंटन समस्याओं का पता लगाने के लिए आप कई उन्नत तकनीकों का उपयोग कर सकते हैं। Here आप एक शानदार ट्यूटोरियल ढूंढ सकते हैं जो आपको लीक्स टूल की अनुमति देने से परे जाने की अनुमति देगा।

संपादित करें:

उन mallocs का सही अर्थ के बारे में है, तो आप को लगता है कि आप वस्तुओं की दो व्यापक वर्गों का आवंटन (यह मोटे तौर पर डाल करने के लिए) कर सकते हैं: ऑब्जेक्टिव-सी वस्तुओं Obj सी के माध्यम से बनाए जाते हैं रनटाइम सिस्टम, और "सामान्य" सी ऑब्जेक्ट्स, जिन्हें मॉलोक के माध्यम से आवंटित किया जाता है।

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

कई बार मॉलोक ऑब्जेक्ट उच्च-स्तरीय कक्षाओं द्वारा बनाए जाते हैं, ताकि जब आप अपने उदाहरणों से जुड़े स्मृति को पुनर्प्राप्त करते हैं, तो मॉलोक के माध्यम से आवंटित स्मृति भी मुक्त हो जाती है।

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

+0

मेरे पास नेट कॉलम नहीं हैं, केवल स्क्रीनशॉट में दिखाई देने वाले ... और "जीवित बाइट्स" आकार का होना चाहिए, है ना? तो मेरा मुख्य सवाल यह है: क्या मुझे उन मॉलोक-प्रविष्टियों की परवाह है? यदि हां, तो वे क्या प्रतिनिधित्व करते हैं, इसलिए मुझे एक शुरुआती बिंदु मिल गया है ... धन्यवाद! – swalkner

+0

कृपया, मेरा संपादन देखें। मुझे आशा है कि यह थोड़ा सा स्पष्ट करेगी। – sergio

+0

एचएम, ठीक है, बहुत बहुत धन्यवाद ... मुझे लगता है कि, मेरे विशिष्ट मामले में, इसका मतलब है कि मुझे उनकी परवाह है। मॉलोक का आकार बढ़ रहा है, इसलिए मैं देखूंगा कि इसके लिए क्या कारण है। आपका बहुत बहुत धन्यवाद! – swalkner

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