2016-03-25 5 views
5

मैं अब इस प्रश्न को सामान्य रखूंगा और कोड के साथ इसे अव्यवस्थित करने से बचूंगा।कोर डेटा अत्यधिक वीएम: SQLite पृष्ठ कैश

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

आवंटन प्रोफाइलर मुझे अत्यधिक "क्षणिक" वीएम: SQLite पृष्ठ ऑब्जेक्ट्स दिखाता है। इसका आकार बढ़ता जा रहा है और बढ़ रहा है लेकिन कभी नीचे नहीं चला जाता है। मैंने यह सुनिश्चित करने का प्रयास किया है कि मेरे सभी NSManagedObjectContext सहेजे गए कॉलबैक कॉल के अंदर होते हैं।

ऐसा प्रतीत होता है जैसे ऑब्जेक्ट संदर्भ हैं जो हटाए जा रहे हैं और/या रीसेट नहीं हो रहे हैं।

मैंने NSManagedObjectContext में undoManager को अक्षम करने का प्रयास किया है। स्थिरता को बहुत कम मूल्य (1.0) में अंतराल सेट करना, और आयात पर डेटा सहेजने के बाद मेरे एमओसी पर रीसेट करना।

इसका मतलब क्या होता है जब क्षणिक वीएम SQLite पृष्ठ कैश इतना ऊंचा हो जाता है? पृष्ठ कैश को नीचे जाने के लिए क्या करने की आवश्यकता है?
इस कैश के लिए एक बड़े कोर डेटा एप्लिकेशन में जाने के लिए स्वीकार्य आकार क्या है?

धन्यवाद,

+0

आप कुछ समाधान खोजने के लिए सक्षम थे? मुझे बिल्कुल एक ही समस्या का सामना करना पड़ रहा है .. –

+0

बस नीचे दिए गए प्रश्न का उत्तर दिया। – dmclean

उत्तर

0

खैर यह पता चला है उपकरण में क्षणिक वीएम SQLite पेज कैश स्तंभ शो, सत्र के लिए संचयी है नहीं "वर्तमान" मूल्य। बेशक यह कभी नीचे नहीं चला जाता है!

यह पता चला है कि प्रबंधित ऑब्जेक्ट संदर्भों को सुनिश्चित करने के आसपास कुछ अन्य अनुकूलन हमारे CoreData स्मृति समस्या को ठीक कर देते हैं।

महान यहाँ लेख इस विषय पर: Core Data issues with memory allocation

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