के अंदर उपलब्ध स्मृति का पता लगाएं मैं एक ऐप बना रहा हूं जिसमें WebView
है जो कुछ जावास्क्रिप्ट कोड चलाता है। वह जावास्क्रिप्ट कोड काफी आवंटन भारी है और बहुत सारी मेमोरी की आवश्यकता हो सकती है।वेबव्यू
कभी-कभी, आवश्यक स्मृति की मात्रा जावास्क्रिप्ट की आवश्यकता से अधिक हो जाती है और वेब ऐप की क्रोमियम प्रक्रिया को क्रैश करता है जो मेरे ऐप को क्रैश करता है।
मैं अपने आवेदन में onMemoryTrim
सुनता हूं - लेकिन इस परिदृश्य में इसे 1 जीबी से अधिक स्मृति वाले उपकरणों पर कभी नहीं कहा जाता है। (TRIM_MEMORY_RUNNING_LOW
के साथ भी नहीं)।
क्या कोई तरीका है कि मैं अपने वेबव्यू को स्मृति पर कम चल रहा हूं और इसे मार सकता हूं या इसे बता सकता हूं (इसलिए यह स्मृति मुक्त कर सकता है)?
मैंने performance.memory
मतदान करने का प्रयास किया है लेकिन यह काम नहीं किया।
var a = [];
var kek =() => {
var b = [];
for(var i = 0; i < 1024 * 1024 * 2; i++) b.push(Math.random());
return b;
}
var ival = setInterval(() => {
let m = performance.memory;
if(m.jsHeapSizeLimit - m.usedJSHeapSize < 1e5) {
console.log("Memory limited")
} else {
a.push(kek());
}
});
वहाँ स्मृति पता लगाने के लिए किसी भी तरह से के बारे में रन आउट हो तो मैं यह शान से ऐप्स क्रैश बिना संभाल कर सकते हैं करने के लिए है है: निम्न स्क्रिप्ट WebView अगर यह में मार डाला दुर्घटनाओं?
'onTrimMemory()' को समग्र जीवन चक्र घटनाओं और मुफ्त * सिस्टम रैम * की मात्रा के आधार पर बुलाया जाता है। आपकी समस्या किसी प्रकार की प्रक्रिया सीमा (उदाहरण के लिए, मानक ऐप ढेर सीमा) से बंधी प्रतीत होती है, और मैं इस तरह के परिदृश्यों के लिए 'onTrimMemory() 'को लागू करने की अपेक्षा नहीं करता। – CommonsWare
@ कॉमन्सवेयर धन्यवाद, मुझे एहसास नहीं हुआ था कि ये सिस्टम-व्यापी ट्रिगर हुक थे। ऐसा प्रतीत होता है कि क्रोम की जावास्क्रिप्ट की सीमा यहां एक गलती है। पूरी तरह से स्पष्ट होने के लिए - ऐसा इसलिए है क्योंकि [क्रोम लीक] (https://bugs.chromium.org/p/chromium/issues/detail?id=749482) और जब यह कुछ सीमा तक पहुंच जाता है - यह क्रैश (मेरे ऐप के साथ) होता है। इस एक्सवाई समस्या में मेरा एक्स क्रोम क्रैश नहीं कर रहा है या मेरे ऐप में इसे पकड़ने का तरीका नहीं है और इसे क्रैश नहीं किया गया है - हालांकि मुझे पूरी तरह उत्सुक पीओसी से मेमोरी उपयोग को मापने के तरीके में दिलचस्पी है। –
@ कॉमन्सवेयर और स्पष्ट रूप से 8.0 एक्स - https://developer.android.com/preview/features/managing-webview.html#termination-handle –