मेमोरी मैनेजमेंट के सबसे सही तरीके

इस दस्तावेज़ में यह माना गया है कि आपने Android ऐप्लिकेशन के लिए, सबसे सही तरीके से जुड़े दिशा-निर्देशों का पालन किया है इस्तेमाल किए जा सकते हैं, जैसे कि अपने ऐप्लिकेशन की मेमोरी मैनेज करना.

परिचय

मेमोरी लीक, एक तरह का संसाधन लीक होता है. यह तब होता है, जब कंप्यूटर प्रोग्राम उस मेमोरी को रिलीज़ नहीं करता है जिसकी अब ज़रूरत नहीं है. लीक इससे, ऐप्लिकेशन उस ओएस से ज़्यादा मेमोरी का अनुरोध कर सकता है जो इसकी तुलना में ज़्यादा है उपलब्ध है और इस तरह ऐप्लिकेशन क्रैश हो जाता है. कई गलत व्यवहार इसकी वजह से, Android ऐप्लिकेशन में मेमोरी लीक हो सकती है, जैसे कि आइटम सही तरीके से नष्ट न होना संसाधनों को रद्द करने से जुड़ी जानकारी.

इस दस्तावेज़ में आपको कुछ सबसे सही तरीक़ों के बारे में बताया गया है, जिनकी मदद से और अपने कोड में मेमोरी लीक होने की समस्या ठीक करें. अगर आपने इसमें दिए गए तरीके आज़माए हैं, तो और हमें लगता है कि हमारे SDK टूल में मेमोरी लीक होने की समस्या है, तो Google SDK टूल से जुड़ी समस्याओं की शिकायत करने का तरीका.

सहायता टीम से संपर्क करने से पहले

मेमोरी लीक की शिकायत Google की सहायता टीम से करने से पहले, इस दस्तावेज़ में दिए गए डीबग करने के चरणों के साथ सबसे सही तरीके पक्का करें कि आपके कोड में गड़बड़ी नहीं है. इन चरणों से आपकी समस्या हल हो सकती है. ऐसा तब भी हो सकता है, जब जानकारी जनरेट नहीं की जाती, बल्कि Google सहायता टीम को मदद मिलती है.

मेमोरी लीक होने से बचाएं

स्पेलिंग की गलतियों से बचने के लिए, यहां दिए गए सबसे सही तरीकों को अपनाएं Google SDK टूल का इस्तेमाल करने वाले कोड में मेमोरी लीक हो जाती है.

Android ऐप्लिकेशन के लिए सबसे सही तरीके

देख लें कि आपने अपने Android ऐप्लिकेशन में ये सभी चीज़ें कर ली हैं:

  1. इस्तेमाल नहीं किए गए संसाधनों को रिलीज़ करें.
  2. ज़रूरत न होने पर लिसनर का रजिस्ट्रेशन रद्द करें.
  3. ज़रूरत न होने पर टास्क रद्द करें.
  4. संसाधन रिलीज़ करने के लिए, लाइफ़साइकल के तरीके फ़ॉरवर्ड करें.
  5. SDK टूल के सबसे नए वर्शन का इस्तेमाल करना

इनमें से हर तरीके की खास जानकारी के लिए, नीचे दिए गए सेक्शन देखें.

इस्तेमाल नहीं किए गए संसाधनों को रिलीज़ करें

जब आपका Android ऐप्लिकेशन किसी संसाधन का इस्तेमाल करता है, तो संसाधन को तब रिलीज़ करना न भूलें, जब अब इसकी ज़रूरत नहीं है. यदि आप ऐसा नहीं करते, तो संसाधन मेमोरी का उपयोग करना जारी रखता है आपके आवेदन के पूरा हो जाने के बाद भी. ज़्यादा जानकारी के लिए, गतिविधि की लाइफ़साइकल देखें.

GeoSDKs में Google Maps के पुराने रेफ़रंस रिलीज़ करें

एक सामान्य गलती यह है कि Google Maps का उपयोग करके कैश मेमोरी में सेव करने पर मेमोरी लीक हो सकती है नेविगेशन व्यू या मैप व्यू. Google Map का नेविगेशन व्यू या मैप व्यू, जहां से इसे वापस पाया गया है. आपने लोगों तक पहुंचाया मुफ़्त में को या तो यह सुनिश्चित करना चाहिए कि Google Map कैश नहीं किया गया है या संदर्भ नेविगेशन व्यू#onDestroy या MapView#onDestroy को कॉल करने पर रिलीज़ किया जाता है. अगर आपने नेविगेशनSupportफ़्रैगमेंट, MapSupportफ़्रैगमेंट या अपने खुद के फ़्रैगमेंट का इस्तेमाल करना इन व्यू को शामिल कर रहा है, तो रेफ़रंस फ़ाइल को Fragment#onDestroyView.

class NavFragment : SupportNavigationFragment() {

  var googleMap: GoogleMap?

  override fun onCreateView(
    inflater: LayoutInflater,
    parent: ViewGroup?,
    savedInstanceState: Bundle?,
  ): View  {
    super.onCreateView(inflater,parent,savedInstanceState)
    getMapAsync{map -> googleMap = map}
  }

  override fun onDestroyView() {
    googleMap = null
  }
}

ज़रूरत न होने पर लिसनर का रजिस्ट्रेशन रद्द करें

जब आपका Android ऐप्लिकेशन किसी इवेंट के लिए लिसनर रजिस्टर करता है, जैसे कि एक बटन व्यू पर क्लिक करने या कोई बदलाव होने पर, लिसनर का रजिस्ट्रेशन रद्द करना न भूलें जब ऐप्लिकेशन को इवेंट को मॉनिटर करने की ज़रूरत न हो. अगर नहीं, आपका ऐप्लिकेशन पूरा होने के बाद भी, लिसनर मेमोरी का इस्तेमाल कर रहे हैं उनके साथ बातचीत करें.

उदाहरण के लिए, मान लें कि आपका ऐप्लिकेशन नेविगेशन SDK टूल का इस्तेमाल करता है और यह आने वाले इवेंट के बारे में सुनने के लिए यह लिसनर: addArrivalListener का उपयोग करता है, तो यह removeArrivalListener है, जब इसे आने वाली इवेंट की निगरानी की ज़रूरत नहीं होती.

var arrivalListener: Navigator.ArrivalListener? = null

fun registerNavigationListeners() {
  arrivalListener =
    Navigator.ArrivalListener {
      ...
    }
  navigator.addArrivalListener(arrivalListener)
}

override fun onDestroy() {
  navView.onDestroy()
  if (arrivalListener != null) {
    navigator.removeArrivalListener(arrivalListener)
  }

  ...
  super.onDestroy()
}

ज़रूरत न होने पर टास्क रद्द करें

जब कोई Android ऐप्लिकेशन एसिंक्रोनस काम शुरू करता है, जैसे कि डाउनलोड या नेटवर्क अनुरोध, टास्क पूरा होने पर उसे रद्द करना न भूलें. अगर टास्क रद्द नहीं किया जाता. यह ऐप्लिकेशन इस्तेमाल होने के बाद भी बैकग्राउंड में चलता रहता है ने इसे पूरा कर लिया.

सबसे सही तरीकों के बारे में ज़्यादा जानकारी के लिए, यह देखें अपने ऐप्लिकेशन की मेमोरी मैनेज करना देखें.

संसाधनों को रिलीज़ करने के लिए, लाइफ़साइकल के तरीकों को फ़ॉरवर्ड करें

अगर आपके ऐप्लिकेशन में नेविगेशन या Maps SDK का इस्तेमाल किया जाता है, तो लाइफ़साइकल के तरीकों (बोल्ड में दिखाए गए) को navView पर फ़ॉरवर्ड करके, संसाधन. आप नेविगेशन SDK में NavigationView का या मैप में MapView का उपयोग करके ऐसा करें या नेविगेशन SDK टूल. आप SupportNavigationFragment या NavigationView और MapView के बजाय, SupportMapFragment का इस्तेमाल करें, क्रम से. सहायता फ़्रैगमेंट, लाइफ़साइकल को फ़ॉरवर्ड करने की प्रोसेस को मैनेज करते हैं तरीकों का इस्तेमाल करना होगा.

class NavViewActivity : AppCompatActivity() {

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    ...
    navView = ...
    navView.onCreate(savedInstanceState)
    ...
  }

  override fun onSaveInstanceState(savedInstanceState: Bundle) {
    super.onSaveInstanceState(savedInstanceState)
    navView.onSaveInstanceState(savedInstanceState)
  }

  override fun onTrimMemory(level: Int) {
    super.onTrimMemory(level)
    navView.onTrimMemory(level)
  }

  /* Same with
    override fun onStart()
    override fun onResume()
    override fun onPause()
    override fun onConfigurationChanged(...)
    override fun onStop()
    override fun onDestroy()
  */
}

SDK टूल के सबसे नए वर्शन का इस्तेमाल करें

Google SDK को लगातार अपडेट किया जा रहा है. इसमें नई सुविधाएं जोड़ी जा रही हैं, गड़बड़ियां ठीक की जा रही हैं, और परफ़ॉर्मेंस में सुधार किए गए हैं. इन्हें पाने के लिए, अपने ऐप्लिकेशन में मौजूद SDK टूल को अप-टू-डेट रखें समाधान.

मेमोरी लीक होने की समस्या को डीबग करना

यदि लागू करने के सभी उपाय लागू करने के बाद भी आपको मेमोरी लीक होती है इस दस्तावेज़ में पहले दिए गए सुझावों को डीबग करने के लिए इस प्रोसेस का पालन करें.

शुरू करने से पहले, आपको यह पता होना चाहिए कि Android कैसे मैनेज करता है मेमोरी. जानकारी के लिए, Android मेमोरी मैनेजमेंट की खास जानकारी.

मेमोरी लीक को डीबग करने के लिए, यह तरीका अपनाएं:

  1. समस्या को फिर से बनाएं. इसे डीबग करने के लिए, यह चरण ज़रूरी है.
  2. देखें कि मेमोरी का इस्तेमाल सही है या नहीं. जांच लें कि बढ़ा हुआ इस्तेमाल, जो लीक होता दिख रहा है, असल में मेमोरी आपके ऐप्लिकेशन को चलाने के लिए आवश्यक है.
  3. बड़े लेवल पर डीबग करें. आपके पास कई सुविधाएं हैं का इस्तेमाल डीबग करने के लिए करते हैं. तीन अलग-अलग स्टैंडर्ड टूल सेट, मेमोरी से जुड़ी समस्याओं को डीबग करने में मदद करते हैं Android में: Android Studio, Perfetto, और Android डीबग ब्रिज (adb) कमांड लाइन सुविधाएं.
  4. अपने ऐप्लिकेशन की मेमोरी के इस्तेमाल की जांच करें. एक हीप डंप पाएं और ऐलोकेशन ट्रैकिंग और फिर उसका विश्लेषण करें.
  5. मेमोरी लीक को ठीक करना.

नीचे दिए गए सेक्शन में, इन चरणों के बारे में पूरी जानकारी दी गई है.

पहला चरण: समस्या फिर से बनाएं

अगर आप समस्या को फिर से तैयार नहीं कर पा रहे हैं, तो पहले कुछ स्थितियों पर गौर करें इससे मेमोरी लीक हो सकती है. चलिए, सीधे आपकी अगर आपको पता है कि समस्या को फिर से बनाया गया है, तो हीप डंप सही से काम कर सकता है. हालांकि, अगर आपको ऐप्लिकेशन के स्टार्टअप या किसी दूसरे समय पर हीप डंप मिलता है, तो हो सकता है कि आपने लीक होने के लिए, शर्तों को चालू न किया हो. इन बातों पर ध्यान दें इस समस्या को हल करते समय कई स्थितियों को ध्यान में रखकर काम किया जाता है:

  • किन सुविधाओं का सेट चालू है?

  • उपयोगकर्ता की कार्रवाइयों का कौनसा क्रम लीक होता है?

    • क्या आपने इस क्रम को चालू करने के लिए, कई बार कोशिश की है?
  • ऐप्लिकेशन को कौनसी लाइफ़साइकल स्थितियों से भेजा गया है?

    • क्या आपने अलग-अलग लाइफ़साइकल स्थितियों में कई बार कोशिश की है?

पक्का करें कि SDK टूल के सबसे नए वर्शन में, समस्या फिर से हल की जा सके. कॉन्टेंट बनाने पिछले वर्शन की समस्या शायद पहले ही ठीक कर दी गई हो.

दूसरा चरण: देखें कि ऐप्लिकेशन के लिए मेमोरी का इस्तेमाल सही है या नहीं

हर सुविधा के लिए अतिरिक्त मेमोरी की ज़रूरत होती है. अलग-अलग स्थितियों को डीबग करने पर, यह सोचें कि क्या इसका इस्तेमाल अनुमानित है या नहीं या फिर असल में मेमोरी लीक. उदाहरण के लिए, अलग-अलग सुविधाओं या उपयोगकर्ता के कामों के लिए, ये संभावनाओं के बारे में जानकारी मिल सकती है:

  • डेटा लीक होने की संभावना है: बार-बार दोहराने की सुविधा की मदद से स्थिति को चालू करना इससे समय के साथ मेमोरी का इस्तेमाल बढ़ जाता है.

  • इस बात की संभावना ज़्यादा है कि मेमोरी का इस्तेमाल किया जाए: किसी स्थिति के बाद, मेमोरी पर फिर से दावा किया जाता है को रोक दिया गया है.

  • संभावित मेमोरी का इस्तेमाल: कुछ समय के लिए मेमोरी का इस्तेमाल बढ़ जाता है कम करने में मदद मिलती है. यह बाउंड कैश या अन्य संभावित वजहों से हो सकता है मेमोरी के इस्तेमाल को रोकने के लिए बनी है.

अगर ऐप्लिकेशन के काम करने के तरीके में मेमोरी के इस्तेमाल की उम्मीद है, तो समस्या आपके ऐप्लिकेशन की मेमोरी को मैनेज करके पता लगाया जाता है. मदद के लिए, यह देखें अपने ऐप्लिकेशन की मेमोरी मैनेज करना.

तीसरा चरण: बड़े लेवल पर डीबग करना

मेमोरी लीक को डीबग करने पर, हाई लेवल से शुरुआत करें और फिर ड्रिल-डाउन करें जब आपने क्षमताओं को सीमित कर लिया हो. इनमें से किसी एक हाई लेवल का इस्तेमाल करें डीबग करने वाले टूल, ताकि समय के साथ लीक होने का पता लगाया जा सके:

Android Studio का मेमोरी प्रोफ़ाइलर

यह टूल इस्तेमाल की गई मेमोरी का विज़ुअल हिस्टोग्राम दिखाता है. हीप डंप और ऐलोकेशन ट्रैकिंग को भी इसी इंटरफ़ेस से ट्रिगर किया जा सकता है. यह टूल डिफ़ॉल्ट सुझाव है. ज़्यादा जानकारी के लिए, यह देखें Android Studio का मेमोरी प्रोफ़ाइलर.

परफ़ेटो मेमोरी काउंटर

परफ़ेटो से आपको पूरा कंट्रोल मिलता है ट्रैक करने से जुड़ा कॉन्टेंट रिकॉर्ड करता है. साथ ही, इन्हें एक ही हिस्टोग्राम में दिखाता है. इसके लिए ज़्यादा जानकारी के लिए, देखें परफ़ेटो मेमोरी काउंटर.

Perfetto का यूज़र इंटरफ़ेस

Android डीबग ब्रिज (adb) कमांड लाइन सुविधाएं

Perfetto की मदद से ट्रैक की जा सकने वाली ज़्यादातर जानकारी, adb के तौर पर भी उपलब्ध है कमांड लाइन सुविधा इस्तेमाल करें जिससे आप सीधे क्वेरी कर सकें. कुछ ज़रूरी बातें उदाहरण के लिए:

  • Meminfo से, आपको किसी भी समय मेमोरी की पूरी जानकारी देख सकते हैं.

  • प्रोकस्टेट ये सुविधाएं देते हैं समय के साथ कुछ अहम एग्रीगेट किए गए आंकड़े देख सकते हैं.

यहाँ पर देखने के लिए एक महत्वपूर्ण आँकड़ा अधिकतम भौतिक मेमोरी फ़ुटप्रिंट है (maxRSS) जिसकी ज़रूरत ऐप्लिकेशन को समय के साथ होती है. ऐसा हो सकता है कि MaxPSS सटीक न हो. इसके लिए को ज़्यादा सटीक बनाने का तरीका जानने के लिए, adb shell dumpsys procstats --help –start-testing फ़्लैग.

आवंटन ट्रैकिंग

ऐलोकेशन ट्रैकिंग से उस स्टैक ट्रेस की पहचान होती है जहां मेमोरी को बांटा गया था और उसे मुक्त नहीं किया गया था. यह चरण खास तौर पर तब मददगार होता है, जब नेटिव कोड. यह टूल स्टैक ट्रेस की पहचान करता है. इसलिए, यह का मतलब है, मूल वजह को फटाफट डीबग करना या फिर से समस्या. ऐलोकेशन ट्रैकिंग का इस्तेमाल करने का तरीका जानने के लिए, यह देखें एलोकेशन ट्रैकिंग की मदद से नेटिव कोड में मेमोरी डीबग करें.

चौथा चरण: हीप डंप की मदद से, अपने ऐप्लिकेशन की मेमोरी के इस्तेमाल की जांच करना

मेमोरी लीक का पता लगाने का एक तरीका यह है कि आप अपने ऐप्लिकेशन का हीप डंप पाएं और इसके बाद, लीक हुए डेटा की जांच करें. हीप डंप सभी ऑब्जेक्ट का स्नैपशॉट होता है मेमोरी में सेव किया जाता है. इसका इस्तेमाल मेमोरी लीक होने की गड़बड़ी और दूसरी चीज़ों का पता लगाने के लिए किया जा सकता है मेमोरी से जुड़ी समस्याएं.

Android Studio, मेमोरी लीक होने की ऐसी गड़बड़ियों का पता लगा सकता है जिन्हें GC से ठीक नहीं किया जा सकता. जब कैप्चर किया जाता है एक हीप डंप के ज़रिए, Android Studio यह देखता है कि कोई गतिविधि या फ़्रैगमेंट है या नहीं जिस पर अब भी पहुंचा जा सकता है, लेकिन उसे पहले ही खत्म कर दिया गया है.

  1. हीप डंप को कैप्चर करें.
  2. मेमोरी लीक का पता लगाने के लिए हीप डंप का विश्लेषण करें.
  3. मेमोरी लीक होने की समस्या ठीक करना.

ज़्यादा जानकारी के लिए, नीचे दिए गए सेक्शन देखें.

हीप डंप को कैप्चर करें

हीप डंप को कैप्चर करने के लिए, Android डीबग ब्रिज (adb) या Android Studio का मेमोरी प्रोफ़ाइलर.

हीप डंप को कैप्चर करने के लिए adb का इस्तेमाल करना

इसका इस्तेमाल करके हीप डंप को कैप्चर करने के लिए adb खोलने के लिए, यह तरीका अपनाएं:

  1. अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें.
  2. कोई कमांड प्रॉम्प्ट खोलें और उस डायरेक्ट्री पर जाएं जिसमें adb टूल मौजूद हैं.
  3. हीप डंप को कैप्चर करने के लिए, इस निर्देश को चलाएं :

    adb shell am dumpheap my.app.name $PHONE_FILE_OUT

  4. हीप डंप को वापस पाने के लिए, इस निर्देश को चलाएं:

    adb pull $PHONE_FILE_OUT $LOCAL_FILE.

हीप डंप को कैप्चर करने के लिए Android Studio का इस्तेमाल करना

Android Studio के मेमोरी प्रोफ़ाइलर का इस्तेमाल करके हीप डंप को कैप्चर करने के लिए, यह तरीका अपनाएं Android में कदमों की संख्या हीपडंप कैप्चर करना सेक्शन में जाएं.

मेमोरी लीक का पता लगाने के लिए हीप डंप का विश्लेषण करें

हीप डंप को कैप्चर करने के बाद, Android Studio की मेमोरी का इस्तेमाल किया जा सकता है इसका विश्लेषण करने के लिए प्रोफ़ाइलर. ऐसा करने के लिए, यह तरीका अपनाएं:

  1. Android Studio में अपना Android प्रोजेक्ट खोलें.

  2. Run को चुनें. इसके बाद, DebugView कॉन्फ़िगरेशन चुनें.

  3. Android प्रोफ़ाइलर टैब खोलें.

  4. मेमोरी चुनें.

  5. हीप डंप खोलें को चुनें और अपनी जनरेट की गई हीप डंप फ़ाइल चुनें. मेमोरी प्रोफ़ाइलर, आपके ऐप्लिकेशन के मेमोरी के इस्तेमाल का ग्राफ़ दिखाता है.

  6. हीप डंप का विश्लेषण करने के लिए ग्राफ़ का इस्तेमाल करें:

    • उन ऑब्जेक्ट की पहचान करना जिनका अब इस्तेमाल नहीं किया जा रहा है.

    • उन ऑब्जेक्ट की पहचान करें जो बहुत ज़्यादा मेमोरी इस्तेमाल करते हैं.

    • देखें कि हर ऑब्जेक्ट कितनी मेमोरी का इस्तेमाल कर रहा है.

  7. मेमोरी लीक होने के सोर्स का पता लगाने या उसका पता लगाने के लिए, इस जानकारी का इस्तेमाल करें और इसे ठीक करें.

पांचवां चरण: मेमोरी लीक होने की समस्या को ठीक करना

मेमोरी लीक के सोर्स की पहचान करने के बाद, उसे ठीक किया जा सकता है. Android ऐप्लिकेशन में मेमोरी लीक होने की समस्या को ठीक करके, ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है आपके ऐप्लिकेशन कैसे अच्छे से काम करते हैं. स्थिति के हिसाब से, जानकारी अलग-अलग हो सकती है. हालांकि, इन सुझावों से मदद मिल सकती है:

अन्य डीबगिंग टूल

अगर इन चरणों को पूरा करने के बाद भी, आपको मेमोरी लीक हो रही है, तो ये टूल आज़माएं:

ऐलोकेशन ट्रैकिंग की मदद से नेटिव कोड में मेमोरी डीबग करें

भले ही, आप सीधे तौर पर नेटिव कोड का इस्तेमाल न कर रहे हों, तब भी कई सामान्य Android लाइब्रेरी इनमें Google SDK टूल भी शामिल हैं. अगर आपको लगता है कि आपकी मेमोरी लीक होने की जानकारी, नेटिव कोड में है, तो ऐसे कई तरीके हैं कई टूल तो आप इसे डीबग करने के लिए इस्तेमाल कर सकते हैं. इनमें से किसी एक के साथ ऐलोकेशन ट्रैकिंग Android Studio या हीपप्रोड (Perfetto के साथ भी काम करता है) डाइग्नोस्टिक टूल का इस्तेमाल करके, और अक्सर डीबग करने का सबसे तेज़ तरीका होता है.

आवंटन ट्रैकिंग का एक अलग लाभ यह भी है कि आप नतीजे में, उस संवेदनशील जानकारी को शामिल न करें जो किसी ढेर में मिल सकती है.

LeakCanary की मदद से लीक हुए डेटा की पहचान करें

LeakCanary एक बेहतरीन टूल है, जिसकी मदद से Android ऐप्लिकेशन में मेमोरी लीक की पहचान की जा सकती है. अपने ऐप्लिकेशन में LeakCanary इस्तेमाल करने के तरीके के बारे में ज़्यादा जानने के लिए, यहां जाएं LeakCanary.

Google SDK टूल से जुड़ी समस्याओं की शिकायत करने का तरीका

अगर आपने इस दस्तावेज़ में दिए गए तरीके आज़माए हैं और आपको लगता है कि मेमोरी लीक हो गई है तो नीचे दी गई ज़्यादा से ज़्यादा जानकारी के साथ ग्राहक सहायता टीम से संपर्क करें यहां दिए गए निर्देशों का पालन करें:

  • मेमोरी लीक को फिर से बनाने का तरीका. अगर चरणों को पूरा करने के लिए मुश्किल कोडिंग की ज़रूरत हो, हमारे नमूना ऐप्लिकेशन में समस्या की कॉपी बनाने वाले कोड को कॉपी करने में सहायता मिल सकती है साथ ही, उन अतिरिक्त चरणों के बारे में भी बताएं जिन्हें यूज़र इंटरफ़ेस (यूआई) में पूरा करने पर ही लीक.

  • समस्या को हल करते हुए आपके ऐप्लिकेशन से कैप्चर किए गए हीप डंप. हीप कैप्चर करें डंप करता है जो दिखाता है कि मेमोरी के इस्तेमाल ने काफ़ी बढ़ोतरी हुई.

  • अगर नेटिव मेमोरी लीक होने की उम्मीद है, तो बजट का बंटवारा शेयर करें से ट्रैकिंग आउटपुट हीपप्रोड.

  • गड़बड़ी की रिपोर्ट, जो लीक होने की स्थिति को फिर से बनाने के बाद ली जाती है.

  • किसी भी मेमोरी से जुड़े क्रैश के स्टैक ट्रेस.

    अहम जानकारी: आम तौर पर, स्टैक ट्रेस अपने-आप लोड नहीं हो पाते मेमोरी की समस्या को डीबग करें, इसलिए पक्का करें कि आप एक अन्य फ़ॉर्म भी उपलब्ध कराते हैं जानकारी होती है.