5

मैं अपने पृष्ठ में कुछ मेमोरी लीक को ट्रैक करने का प्रयास करने के लिए Chrome's Timeline उपयोग कर रहा हूं। मुझे एक विशेष मेमोरी रिसाव मिली है जो वेब श्रमिकों को तत्काल करने के परिणामस्वरूप है कि मुझे यह पता लगाना नहीं है कि कैसे छुटकारा पाना है।वेब वर्कर मेमोरी लीक?

मैंने वेब कार्यकर्ता को लोड करने के लिए पृष्ठ को तोड़ दिया है और कुछ और नहीं किया है। हर बार जब मैं पृष्ठ को रीफ्रेश करता हूं, तो क्रोम के टाइमलाइन व्यू पर दस्तावेज़ गणना स्थायी रूप से 1 तक बढ़ जाती है। यदि मैं वर्कर कन्स्ट्रक्टर को कॉल करता हूं, और पृष्ठ को रीफ्रेश करना शुरू करता हूं, तो दस्तावेज़ गिनती बढ़ जाती है और फिर प्रभावी रूप से वही रहती है। कार्यकर्ता को मैन्युअल रूप से समाप्त/बंद करना इस मुद्दे को हल नहीं करता है (हालांकि जब मैं डेवलपर टूल के स्रोत टैब को देखता हूं तो मैं कार्यकर्ता गायब हो सकता हूं)।

यहां मेरी छंटनी है। एचटीएम फ़ाइल। मैं इस मुद्दे को एचटीएमएल/जावास्क्रिप्ट के इस संक्षिप्त खंड के साथ पुन: उत्पन्न करने में सक्षम हूं:

<html> 
<script type="text/javascript"> 
var worker_blob = new Blob(["var test = 1;"]); 
var worker_url = window.URL.createObjectURL(worker_blob); 
// Comment out the line below and the memory leak goes away 
var worker = new Worker(worker_url); 
window.URL.revokeObjectURL(worker_url); 
</script> 
</html> 
+0

जब आपका कर्मचारी अपना कार्य पूरा करता है तो यह [बंद] (https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIWorkerScope#close()) स्वयं या आपका पृष्ठ 'टर्मिनेट' कह सकता है। –

+0

मैंने पहले से ही दोनों की कोशिश की है और न ही कोई इस मुद्दे का उपचार करता है। इसके अलावा, जब मैं पृष्ठ छोड़ता हूं तो कार्यकर्ता को समाप्त कर दिया जाना चाहिए। –

+2

क्या यह मौका है https://code.google.com/p/chromium/issues/detail?id=181680? –

उत्तर

3

यह क्रोम v25 में एक स्मृति रिसाव है। ऐसा लगता है कि क्रोम v26 में तय किया गया है, क्योंकि इस मुद्दे को पुन: उत्पन्न नहीं किया जा सकता है।

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