फेसबुक ने जारी किया मेमलैब का सोर्स कोड

फेसबुक-मेमलैब

मेमलैब जावास्क्रिप्ट मेमोरी लीक खोजने के लिए एक ढांचा है

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

ढांचा उच्च स्मृति खपत के कारणों का विश्लेषण करने के लिए बनाया गया था वेबसाइटों और वेब अनुप्रयोगों के साथ काम करते समय। उदाहरण के लिए, Facebook.com साइट के एक नए संस्करण का उपयोग करते समय मेमोरी खपत का विश्लेषण करने के लिए memlab का उपयोग किया गया था, जिसमें लीक का पता चला था जिसके कारण फ्री मेमोरी समाप्त होने के कारण क्लाइंट-साइड ब्राउज़र क्रैश हो गया था।

जो लोग हमारे वेब एप्लिकेशन का उपयोग करते हैं, उन्हें अक्सर प्रदर्शन संबंधी समस्याएं और कार्यात्मक सुधार तुरंत दिखाई देंगे। हालाँकि, स्मृति हानि एक अलग कहानी है। यह तुरंत ध्यान देने योग्य नहीं है, क्योंकि यह एक समय में मेमोरी के एक हिस्से का उपभोग करता है, पूरे वेब सत्र को प्रभावित करता है और बाद के इंटरैक्शन को धीमा और कम प्रतिक्रियाशील बनाता है।

अपने डेवलपर्स को इसे संबोधित करने में मदद करने के लिए, हमने मेमलैब बनाया, एक जावास्क्रिप्ट मेमोरी टेस्टिंग फ्रेमवर्क जो लीक डिटेक्शन को स्वचालित करता है और मेमोरी लीक का पता लगाना आसान बनाता है। हमने मेटा पर MemLab का उपयोग सफलतापूर्वक अस्थिर मेमोरी ग्रोथ को रोकने और अपने उत्पादों और बुनियादी ढांचे में मेमोरी लीक और मेमोरी ऑप्टिमाइज़ेशन के अवसरों की पहचान करने के लिए किया है।

उच्च स्मृति उपयोग का पृष्ठ लोड और इंटरैक्शन प्रदर्शन पर सांख्यिकीय रूप से महत्वपूर्ण और नकारात्मक प्रभाव पड़ता है (किसी पृष्ठ को लोड करने या इंटरैक्शन करने में कितना समय लगता है)
उपयोगकर्ता जुड़ाव मीट्रिक (सक्रिय उपयोगकर्ता, साइट पर बिताया गया समय, की गई गतिविधियों की संख्या)

स्मृति रिसाव के कारण जावास्क्रिप्ट कोड निष्पादित करते समय छिपे हुए ऑब्जेक्ट संदर्भों की उपस्थिति हो सकती है, ताकि कचरा संग्रहकर्ता स्मृति को मुक्त नहीं कर सकता ऑब्जेक्ट द्वारा कब्जा कर लिया गया, मूल्यों का अनुचित कैशिंग, या पुरानी सूची वस्तुओं को बेदखल किए बिना अनंत स्क्रॉल को लागू करना।

उदाहरण के लिए, निम्नलिखित क्रोम कोड में, "obj" ऑब्जेक्ट के कारण मेमोरी लीक होती है, भले ही यह शून्य पर सेट हो, क्योंकि क्रोम रेंडर किए गए ऑब्जेक्ट्स के आंतरिक संदर्भ रखता है ताकि बाद में वेब कंसोल में उनका निरीक्षण किया जा सके।

मेमलैब का मूल संचालन, निम्नलिखित है:

  1. यह पहले ब्राउज़र में मेमोरी लीक डिटेक्शन करता है, मेमलैब आपको डायनेमिक मेमोरी स्नैपशॉट की स्वचालित रूप से तुलना करने, मेमोरी लीक का पता लगाने और कुल परिणामों की अनुमति देता है।
  2. एक ऑब्जेक्ट-ओरिएंटेड हीप ट्रैवर्सल एपीआई जो आपको अपने स्वयं के लीक डिटेक्शन एल्गोरिदम को लागू करने और हीप स्नैपशॉट को पार्स करने के लिए सिस्टम को लागू करने की अनुमति देता है। हीप पार्सिंग क्रोमियम इंजन पर आधारित ब्राउज़रों के साथ-साथ Node.js, इलेक्ट्रॉन और हर्मीस प्लेटफॉर्म के लिए समर्थित है।
  3. मेमोरी उपयोग को अनुकूलित करने के अवसर खोजने के लिए कमांड लाइन इंटरफेस और एपीआई।
  4. Node.js के लिए एक अभिकथन प्रणाली जो आपको इकाई परीक्षण बनाने और अपने स्वयं के राज्य को विभाजित करने, अपनी स्मृति का परीक्षण करने, या उन्नत अभिकथन लिखने के लिए Node.js-आधारित प्रोग्राम चलाने की अनुमति देती है।
  5. रिटेंशन ट्रेस ग्रुपिंग, मेमलैब सभी रिटेंशन ट्रेस को एक साथ समूहित करता है और फ़िल्टर किए गए ऑब्जेक्ट्स के प्रत्येक समूह के लिए एक ट्रेस प्रदर्शित करता है जो समान अवधारण ट्रेस साझा करते हैं। ट्रेस में डिबगिंग जानकारी भी शामिल है जैसे हावी नोड्स और बनाए रखा आकार।
  6. लीक की रिपोर्ट करके, मेमोरी रिग्रेशन के बारे में निरंतर संकेत प्राप्त करने के लिए मेमलैब को पूरे दिन नियमित अंतराल पर चलाया जा सकता है। किसी भी नए प्रतिगमन को एक आंतरिक डैशबोर्ड में जोड़ा जाता है, जहां सभी ज्ञात मेमोरी लीक के पूल किए गए अवधारण निशान एकत्र और वर्गीकृत किए जाते हैं। डेवलपर्स तब प्रत्येक मेमोरी लीक के लिए होल्ड ट्रेस में ऑब्जेक्ट गुणों को क्लिक और देख सकते हैं।

अंत में अगर आप रुचि रखते है, आपको पता होना चाहिए कि एमआईटी लाइसेंस के तहत मेमलैब कोड ओपन सोर्स है और आप इसके बारे में अधिक जान सकते हैं निम्नलिखित लिंक में


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।