2013-07-03 4 views
10

निश्चित बिंदु पर अपने Android एप्लिकेशन डिबगिंग जब मैं किसी को भी इसके बारे में क्या पता हैटैग: TextLayoutCache पाठ: कैश मूल्य नष्ट कर दिया

Tag: TextLayoutCache Text: Cache Value 0x51b9f578 deleted, size=168 (the hexa value changes from entry to entry) 

साथ LogCat में प्रविष्टियों की एक बड़ी राशि दिखाई दे रही है? स्मृति रिसाव? कोई समस्या यह हल करने के लिए कैसे हल करती है? धन्यवाद!

उत्तर

5

वहाँ नहीं है नेट पर एक निश्चित जवाब होने लगते हैं, तो मैं TextLayoutCache.cpp के लिए कोड पर एक नज़र था। मुझे ठीक लग रहा है। यह प्रदर्शन में सुधार करने पाठ लेआउट डेटा कैशिंग है, और वर्तमान में 0.5MB की एक निश्चित डिफ़ॉल्ट संचय आकार का TextLayoutCache.h में परिभाषित नहीं है।

तो अगर आप मूल्यों की एक निश्चित सेट (< 0.5MB) के लिए लेआउट पाठ बदल रहे हैं, तो आप लॉग संदेश नहीं देख सकेंगे।

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

ध्यान दें कि TextLayoutCache अगर यह काम करता है, मैं त्रुटि समझ नहीं रहते हैं, कैसे/जब/यह क्या है के बावजूद Android संस्करण में प्रयोग किया जाता है नहीं> = 5.

0

मैं जब मैं runnable &

मैं चर में findViewById() द्वारा textViews के कहने एकत्र का उपयोग कर हैंडलर से मेरी TextView मान अपडेट किया गया था, तो इन एकत्र उदाहरणों का हवाला देते हुए TextView के मूल्यों को अद्यतन करने के लिए एक ही मुद्दा बारे में जाना।

तो, जैसा कि मैंने देखा कि मैं अपने हाथ के बल्लेबाज के बाहर है कि TextView के कहने की जरूरत नहीं तो मैं बस संचालक अंदर findViewById() का उपयोग और मेरे textviews अद्यतन है।

संदर्भ में अपने findviewById() लिखना आप आईडी की जरूरत है। (यह उपयोग कर अपने समारोह के अंदर कोष्ठक के बारे में बात .. मेरे मामले में।)

आशा इस मदद करता है ...

+0

धन्यवाद, मैं यह कोशिश करता हूँ, लेकिन वैसे भी, कैश किया जा रहा है। बीटीडब्लू, मैंने जांच की और मैं कई स्थानों पर संदर्भ का उपयोग करता हूं, इसलिए जब भी मैं केवल एक संदर्भ रखने और इसका उपयोग करने के बजाय कक्षा में किसी विधि का उपयोग करता हूं तो मैं फाइंडबीड को कॉल नहीं करना चाहता हूं। – polonskyg

+0

जैसा कि मैंने मैं लगातार चल धागे से TextView अपडेट करते समय इस में आए उल्लेख। यदि आप findViewById को कॉल नहीं करते हैं तो यह उन पंक्तियों को आपके लॉगकैट में जोड़ता है। यह स्मृति रिसाव से संबंधित नहीं है, मैंने सवाल का जवाब दिया है कि यह क्यों हो रहा है (मेरे मामले में)। – MobileEvangelist

+0

ठीक है, मैं यह पता करने की कोशिश की, लेकिन इतना कह रहता है, एक अलग समस्या हो सकती है। फिर भी धन्यवाद! – polonskyg

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