इस साल, Chrome के मेमोरी फ़ुटप्रिंट को कम करना, टीम की मुख्य प्राथमिकताओं में से एक है. V8 की गार्बेज कलेक्शन प्रोसेस में किए गए सुधारों की वजह से, हमें Gmail के मेमोरी इस्तेमाल में पहले से 45% तक की कमी दिखी है. हालांकि, हमने अभी शुरुआत ही की है. मेमोरी के इस्तेमाल से जुड़े हमारे अगले एक्सपेरिमेंट में, टैब का ज़्यादा इस्तेमाल करने वाले लोगों (जैसे कि हम) को ध्यान में रखा गया है. इसे Tab का इस्तेमाल करके, आइटम को डिस्कार्ब करना कहा जाता है.

टैब को खारिज करने की सुविधा, Chrome 46 और इसके बाद के वर्शन में एक्सपेरिमेंट के तौर पर उपलब्ध है.
बैकग्राउंड
आपके खुले हुए हर टैब के लिए, आम तौर पर हमारी रेंडरर प्रोसेस में हर टैब के लिए करीब 50 एमबी का इस्तेमाल होता है. भले ही, ज़्यादातर लोग एक बार में सिर्फ़ एक टैब का इस्तेमाल करते हैं. अगर आपके पास 10 टैब खुले हैं, तो बैकग्राउंड में टैब की स्थिति बनाए रखने के लिए, कम से कम 450 एमबी मेमोरी खर्च की जा रही है. समय के साथ, यह थोड़ा मुश्किल हो सकता है.

हमारा एक लक्ष्य, उन टैब पर इस्तेमाल होने वाली मेमोरी को कम करना है जिनका इस्तेमाल नहीं किया जा रहा है. Chrome टास्क मैनेजर में जाकर, यह देखा जा सकता है कि कौनसे टैब मेरे सिस्टम की मेमोरी का इस्तेमाल कर रहे हैं. हालांकि, इनमें से एक या दो साइटों का ही 'इस्तेमाल' किया जा रहा है. वहीं, बैकग्राउंड में मौजूद अन्य टैब का इस्तेमाल नहीं किया जा रहा है.

ऐसे में, टैब को खारिज करने से मेमोरी के इस्तेमाल को कम करने में मदद मिलती है.
इस्तेमाल नहीं किए जा रहे टैब खारिज करना
टैब हटाने की सुविधा की मदद से, Chrome उन टैब को अपने-आप हटा देता है जिनमें आपका ज़्यादा दिलचस्पी नहीं है. ऐसा तब होता है, जब सिस्टम की मेमोरी काफ़ी कम हो जाती है. खारिज करने का क्या मतलब है? खारिज किया गया टैब कहीं नहीं जाता. हम इसे बंद कर देते हैं, लेकिन यह अब भी Chrome टैब स्ट्रिप पर दिखता है. अगर किसी ऐसे टैब पर वापस जाएं जिसे खारिज कर दिया गया है, तो उस पर क्लिक करने पर वह फिर से लोड हो जाएगा. फ़ॉर्म का कॉन्टेंट, स्क्रोल की पोज़िशन वगैरह उसी तरह सेव और वापस लाया जाता है जिस तरह टैब का इस्तेमाल करके आगे/पीछे जाने पर होता है.
हमारे पास एक और नई सुविधा है, जिसकी मदद से सभी टैब के रिसॉर्स को स्थानीय तौर पर कैश मेमोरी में सेव किया जा सकता है. यह सुविधा, ऑफ़लाइन होने पर टैब को खारिज करने की सुविधा के साथ अच्छी तरह से काम करती है. टैब को फिर से चालू करने पर, हम आपको कैश मेमोरी में सेव किए गए उस वर्शन को फिर से लोड करने का विकल्प देते हैं जो पहले नेटवर्क से लोड किया गया था. कैश मेमोरी से पेज को फिर से लोड करने की सुविधा चालू करने के लिए, chrome://flags/#show-saved-copy
में जाकर कोई दूसरा एक्सपेरिमेंट आज़माएं.
टैब को खारिज करने की सुविधा को आज ही आज़माया जा सकता है. इसके लिए, chrome://flags/#enable-tab-discarding
के ज़रिए इसे चालू करें और Chrome को फिर से लॉन्च करें. Chrome के उसी chrome://flags
पेज पर जाकर, यह कंट्रोल किया जा सकता है कि यह सुविधा चालू है या बंद.


chrome://discards
नाम के नए पेज पर, आपको यह सूची दिखती है कि फ़िलहाल कौनसे टैब खुले हैं. साथ ही, हम आपको यह जानकारी भी देते हैं कि ये टैब आपके लिए कितने दिलचस्प हैं.

इस सुविधा को आज़माने के लिए, अपने सिस्टम के कम मेमोरी मोड में होने तक, ब्राउज़िंग का सामान्य तरीका अपनाएं. इसके अलावा, 'अभी टैब खारिज करें' पर क्लिक करके, about:discards से टैब खारिज करने की सुविधा को ट्रिगर किया जा सकता है. ऐसा करने पर, सूची में मौजूद आखिरी टैब खारिज हो जाएगा. सूची से किसी टैब को खारिज भी किया जा सकता है. इसके लिए, उस टैब के बगल में मौजूद 'खारिज करें' बटन पर क्लिक करें. खारिज किए गए टैब के नाम के आगे, [खारिज किया गया] प्रीफ़िक्स दिखेगा.

टैब को इस क्रम में खारिज किया जाता है:
- इंटरनल पेज, जैसे कि नया टैब पेज, बुकमार्क वगैरह.
- बहुत समय पहले चुने गए टैब
- हाल ही में चुने गए टैब
- विंडो में चल रहे ऐप्लिकेशन
- पिन किए गए टैब
- चुना गया टैब
हमने Windows और Mac OS के लिए, Chrome Canary में टैब को बंद करने की सुविधा को एक्सपेरिमेंट के तौर पर चालू किया है. यह सुविधा जल्द ही Linux पर भी उपलब्ध होगी.

नए वीडियो का आइडिया: नमस्ते, शानदार सस्पेंडर
अगर आपको टैब को बंद करने की सुविधा पहले से जान-पहचान लग रही है, तो ऐसा इसलिए है, क्योंकि आपको Chrome के ऐसे काम के एक्सटेंशन मिले होंगे जो इस सुविधा को थोड़ा आसान बनाते हैं. जैसे, The Great Suspender. Great Suspender का मकसद, Chrome की मेमोरी और जीपीयू फ़ुटप्रिंट को कम करना है. इसके लिए, यह टैब को इस्तेमाल न किए जाने के बाद, तय समय के लिए निलंबित कर देता है.

टैब को खारिज करने की तरह ही, जब आपको उनसे फिर से इंटरैक्ट करना हो, तो टैब को निलंबित किए जाने की स्थिति से हटाया जा सकता है. Great Suspender, हर टैब का टाइटल और फ़ैविकन बनाए रखता है. साथ ही, निलंबित टैब को धुंधला करके दिखाता है, ताकि किसी भी समय उन पर आसानी से वापस जाया जा सके.

बैकग्राउंड में चल रहे ऐसे टैब को निलंबित कर दिया गया है जिनका इस्तेमाल नहीं किया जा रहा है. इससे मेमोरी बचती है. हालांकि, जिन टैब का इस्तेमाल अब भी किया जा रहा है (GitHub और YouTube), वे अब भी सामान्य तरीके से काम कर रहे हैं.
टैब को बंद करने की सुविधा को डेवलप करते समय, हमने Great Suspender एक्सटेंशन के लेखक के साथ अच्छी बातचीत की थी. उन्हें यह देखकर खुशी हुई कि हमने इस समस्या को नेटिव तरीके से हल किया है. यह तरीका, एक्सटेंशन के मुकाबले ज़्यादा असरदार है. जैसे, उपयोगकर्ता की गतिविधियों की स्थिति को सेव रखना.
आने वाले समय में होने वाले सुधार: टैब सीरियलाइज़र
टैब को सेरियलाइज़ करने की सुविधा, आने वाले समय में उपलब्ध होगी. हमें लगता है कि इससे टैब को बंद करने के हमारे मौजूदा तरीके में काफ़ी सुधार हो सकते हैं. यह किसी Chrome टैब के कॉन्टेंट को लेता है और उसकी *मौजूदा* स्थिति को बाइनरी ब्लॉब में बदल देता है. इस बिटरी ब्लॉब को बाद में, टैब में फिर से सीरियलाइज़ किया जा सकता है.
सीरियलाइज़र, Chrome, Blink, और V8 के लिए ज़रूरी सभी चीज़ों को सीरियलाइज़ करेगा, ताकि टैब को सही तरीके से सेव किया जा सके. Chrome एक्सटेंशन, इस समस्या को हल करने के लिए, अब तक आसानी से ऐसा नहीं कर पाए हैं. सीरियलाइज़ेशन में आम तौर पर ये शामिल होते हैं: डीओएम (इसमें बहुत सारे वेबजीएल और कैनवस शामिल होते हैं), सीएसएस, और V8 JavaScript VM की स्थिति.

अगर Android या ChromeOS का इस्तेमाल किया जा रहा है, तो आपको पता होगा कि हम बैकग्राउंड में खुले टैब को तुरंत बंद कर देते हैं. ऐसा इसलिए किया जाता है, ताकि डिवाइस की मेमोरी का कम से कम इस्तेमाल हो. यह सुविधा, टैब को बंद करने के उस प्रयोग जैसी ही है जिसके बारे में इस पोस्ट में बताया गया है. हमने इस समस्या को हल करने के लिए जो तरीका अपनाया था उसमें यह समस्या थी कि आपके टैब की *पूरी* स्थिति मिट जाएगी.
जब आपने टैब में फिर से दिलचस्पी दिखाई, तो हमें उसे फिर से लोड करना होगा. ऐसा करने पर, उससे जुड़ा आपका सारा इंटरैक्शन मिट जाएगा. टैब सीरियलाइज़र इस समस्या को ठीक करने के लिए, नेटवर्क पर वापस जाने की ज़रूरत के बिना, आपको उसी पेज पर वापस ले जाता है जिस पर आप थे. हम आने वाले समय में, इस काम के बारे में ज़्यादा जानकारी शेयर करेंगे.
टैब को खारिज करने की सुविधा आज़माएं और हमें बताएं कि आपको यह कैसी लगी
हमें यह जानकर खुशी होगी कि यह सुविधा आपके लिए काम की है या नहीं. साथ ही, हम यह भी जानना चाहेंगे कि इसे कैसे बेहतर बनाया जा सकता है. इसे आज़माएं और इसका इस्तेमाल करें. खास तौर पर, अगर आप टैब का इस्तेमाल बहुत ज़्यादा करते हैं, तो यह सुविधा आपके लिए है! साथ ही, टिप्पणियों में हमें बताएं कि आपको यह सुविधा कैसी लगी. :) अगर आपको crbug.com पर कोई गड़बड़ी मिलती है, तो हमें उसके लिए टिकट भी भेजें.