Chrome के मेमोरी फ़ुटप्रिंट को कम करना इस साल टीम की सबसे अहम प्राथमिकताओं में से एक है. हमने पहले ही Gmail के मेमोरी इस्तेमाल में 45% तक की कमी देख ली है. इसके लिए, V8 की कूड़ा इकट्ठा करने की प्रक्रिया में सुधार किए गए हैं. हालांकि, अभी इसकी शुरुआत ही हुई है. मेमोरी के उपयोग के हमारे अगले प्रयोगों में से एक टैब होर्डर (जैसे मैं) के लिए है. इसे टैब खारिज करना कहते हैं.
टैब खारिज करने की सुविधा, Chrome 46 और उसके बाद के वर्शन में प्रयोग के तौर पर उपलब्ध है.
बैकग्राउंड
आपके खुले हुए हर टैब के लिए, रेंडर करने की हमारी प्रोसेस में करीब 50 एमबी लगते हैं. हालांकि, ज़्यादातर लोग एक समय में सिर्फ़ एक टैब का इस्तेमाल करते हैं. अगर आपके पास 10 टैब खुले हैं, तो बैकग्राउंड टैब की स्थिति को बनाए रखने के लिए कम से कम 450 एमबी मेमोरी खर्च हो रही है. समय के साथ इसमें कुछ मदद मिल सकती है.
हमारा एक लक्ष्य उन टैब पर उपयोग की जाने वाली मेमोरी को कम करना है जिनका आप वास्तव में उपयोग नहीं कर रहे हैं. अगर मैं यह देखता हूं कि Chrome Tasks मैनेजर में कौनसे टैब मेरी सिस्टम मेमोरी का इस्तेमाल कर रहे हैं, तो नीचे दी गई एक या दो साइटों का 'इस्तेमाल' किया जा रहा है और बैकग्राउंड में मौजूद अन्य टैब इस्तेमाल नहीं हो रहे हैं.
वहीं, टैब को खारिज करने की सुविधा से, मेमोरी के इस्तेमाल को कम किया जा सकता है.
इस्तेमाल न होने वाले टैब खारिज किए जा रहे हैं
जब यह पता चलता है कि सिस्टम मेमोरी बहुत कम हो रही है, तो टैब खारिज करने से Chrome ऐसे टैब अपने आप खारिज कर देता है जिनमें आपकी बहुत ज़्यादा दिलचस्पी नहीं है. खारिज करने का क्या मतलब है? वैसे, खारिज किया गया टैब कहीं नहीं जाता. हम इसे खत्म कर देते हैं, लेकिन यह अब भी Chrome टैब बार पर दिखाई दे रहा है. अगर किसी खारिज किए गए टैब पर वापस नेविगेट किया जाता है, तो उस पर क्लिक करने पर, वह फिर से लोड हो जाएगा. फ़ॉर्म के कॉन्टेंट, स्क्रोल की पोज़िशन वगैरह को उसी तरह सेव और पहले जैसा किया जाता है जिस तरह वे आगे/पीछे वाले टैब नेविगेशन के दौरान करते हैं.
हमारे पास एक और नई सुविधा भी है, जो सभी टैब संसाधनों को स्थानीय रूप से कैश करने
की सुविधा देती है. यह आपके ऑफ़लाइन होने पर टैब खारिज करने के साथ अच्छी तरह से काम करती है. टैब को फिर से चालू करने पर, हम आपको कैश मेमोरी में सेव किए गए, उस वर्शन को फिर से लोड करने का विकल्प देते हैं जिसे पहले नेटवर्क पर लोड किया गया था. पेज को कैश मेमोरी से फिर से लोड करने की सुविधा चालू करने के लिए, chrome://flags/#show-saved-copy
में जाकर कोई दूसरा प्रयोग करें.
टैब को आज ही खारिज करने की सुविधा को आज़माने के लिए, इसे chrome://flags/#enable-tab-discarding
के ज़रिए चालू करें और Chrome को फिर से लॉन्च करें. यह भी कंट्रोल किया जा सकता है कि Chrome के chrome://flags
पेज से, इसे चालू किया जाए या बंद किया जाए.
chrome://discards
नाम के एक नए पेज पर, खुले हुए टैब की सूची बनाई जा सकती है. साथ ही, हम आपको यह बताने की कोशिश करते हैं कि कौनसे टैब आपके लिए दिलचस्प (हमारे हिसाब से) हैं.
इस सुविधा की जांच करने के लिए, अपने सिस्टम के कम मेमोरी वाले मोड में होने तक ब्राउज़िंग का सामान्य तरीका अपनाया जा सकता है. इसके अलावा, 'अभी टैब मिटाएं' पर क्लिक करके, इसके बारे में:डिसकनेक्ट से टैब भी हटाया जा सकता है. ऐसा करने से सूची का आखिरी टैब खारिज हो जाएगा. किसी खास टैब से जुड़े 'खारिज करें' बटन पर क्लिक करके, उस टैब को खारिज किया जा सकता है. खारिज किया गया टैब, [खारिज किया गया] प्रीफ़िक्स के साथ दिखेगा.
टैब खारिज करने की प्रोसेस के दौरान, टैब इस क्रम में खारिज किए जाते हैं:
- इंटरनल पेज, जैसे कि नया टैब पेज, बुकमार्क वगैरह.
- बहुत समय पहले चुने गए टैब
- हाल ही में चुने गए टैब
- विंडो में चल रहे ऐप्लिकेशन
- पिन किए गए टैब
- चुना गया टैब
हमने Windows और Mac OS के लिए, Chrome कैनरी में टैब खारिज करने की सुविधा चालू कर दी है. यह जल्द ही लागू होने वाली है.
प्रेरणा: नमस्ते, शानदार निलंबितर
अगर किसी टैब को खारिज करना एक जाना-पहचाना शब्द है, तो इसकी वजह यह है कि आपको Chrome के ऐसे उपयोगी एक्सटेंशन मिले होंगे जो आपको इस आइडिया का थोड़ा आसान वर्शन देते हैं, जैसे कि द ग्रेट सस्पेंडर. ग्रेट सस्पेंडर का लक्ष्य, निष्क्रियता की कस्टम अवधि के बाद टैब को निलंबित करके Chrome की मेमोरी और जीपीयू फ़ुटप्रिंट को कम करना है.
टैब खारिज करने की तरह ही, टैब से फिर से इंटरैक्ट करने पर उनका निलंबन हटाया जा सकता है. बेहतरीन सस्पेंडर की मदद से, हर टैब के टाइटल और फ़ेविकॉन को मैनेज किया जाता है. इसमें, निलंबित किए गए टैब हल्के रंग की स्थिति में दिखते हैं. इससे, उन टैब पर किसी भी समय आसानी से वापस जाया जा सकता है.
बैकग्राउंड में जिन टैब का मैं सक्रिय रूप से इस्तेमाल नहीं कर रहा/रही हूं उन्हें निलंबित कर दिया गया है. इसलिए, ये मेमोरी में सेव हो गए हैं. हालांकि, जिन टैब का इस्तेमाल अब भी किया जा रहा है (GitHub और YouTube), वे अब भी सामान्य रूप से काम कर रहे हैं.
टैब खारिज करने के दौरान हमने ग्रेट सस्पेंडर एक्सटेंशन के लेखक के साथ बहुत बढ़िया चैट की थी और उन्हें इस बात की खुशी है कि हम इस समस्या को ऐसे तरीकों से हल कर रहे हैं जो किसी एक्सटेंशन की तुलना में ज़्यादा कारगर हैं जैसे कि आपकी उपयोगकर्ता गतिविधि न होना.
आने वाले समय में होने वाले सुधार: टैब सीरियलाइज़र
टैब सीरियलाइज़र, आने वाले समय में किया जाने वाला काम का एक हिस्सा है. हमें लगता है कि इससे टैब खारिज करने की हमारी मौजूदा रणनीति में कई सुधार हो सकते हैं. यह Chrome टैब के कॉन्टेंट का इस्तेमाल करता है और अपनी *मौजूदा* स्थिति को बाइनरी ब्लॉब में क्रम से लगाता है. इस बाइनरी ब्लॉब को बाद में एक टैब में डीसीरियलाइज़ (पार्स) किया जा सकता है.
सीरियलाइज़र, Chrome, Blink, और V8 की स्क्रीन पर टैब को सही तरह से सुरक्षित रखने के लिए सभी चीज़ों को क्रम से लगा देता है. ऐसा कुछ Chrome एक्सटेंशन जो इस समस्या से निपटा रहा है जिसे पहले आसानी से नहीं किया जा सकता था. सीरियल नंबर में ये शामिल होंगे: DOM (बहुत सारे WebGL और कैनवस के साथ), सीएसएस और V8 JavaScript VM की स्थिति.
अगर आपके पास Android या ChromeOS है, तो आपको पता चल जाएगा कि (इस पोस्ट में कवर किए गए टैब खारिज करने वाले प्रयोग की तरह ही) हम बैकग्राउंड टैब को भी बंद कर देते हैं, ताकि मेमोरी का इस्तेमाल कम हो. इसे हल करने के हमारे तरीके में समस्या यह थी कि आपके टैब की *सभी* स्थिति हट जाएगी.
जब आपने इस टैब में दोबारा दिलचस्पी दिखाई, तो हमें उसे फिर से लोड करना पड़ेगा. इससे, उस टैब के साथ होने वाला आपका सारा इंटरैक्शन मिट जाएगा. टैब सीरियलाइज़र इस समस्या को बस इस तरह से हल करता है जिससे आप नेटवर्क पर वापस जाए बिना बिलकुल ठीक वैसे ही पहुंच जाते हैं जैसे आप पहले थे. हम आने वाले समय में, इस काम के बारे में ज़्यादा जानकारी शेयर करेंगे.
टैब खारिज करें और इसके बारे में हमें अपनी राय दें
हमें यह जानकर खुशी होगी कि यह सुविधा आपके लिए काम की है या नहीं और इसे बेहतर कैसे बनाया जा सकता है. इसे आज़माएं, इसे आज़माएं (खास तौर पर अगर आपके पास टैब इकट्ठा है!) और टिप्पणियों में हमें अपनी राय दें. :) अगर आप crbug.com पर मिलने वाली किसी भी गड़बड़ी की टिकट फ़ाइल करते हैं, तो हमें भी खुशी होगी.