Chrome-এ ট্যাব বাতিল করা - একটি মেমরি-সেভিং এক্সপেরিমেন্ট৷

আদ্দি ওসমানী
Addy Osmani

Chrome-এর মেমরির পদচিহ্ন কমানো এই বছরের দলের শীর্ষ অগ্রাধিকারগুলির মধ্যে একটি। V8 এর আবর্জনা সংগ্রহের প্রক্রিয়ার উন্নতির জন্য আমরা ইতিমধ্যেই GMail এর মেমরি ব্যবহারে 45% পর্যন্ত হ্রাস দেখেছি কিন্তু আমরা সত্যিই শুরু করছি। মেমরি ব্যবহারে আমাদের পরবর্তী পরীক্ষাগুলির মধ্যে একটি ট্যাব হোর্ডারদের লক্ষ্য করে (আমার মতো)। একে ট্যাব ডিসকার্ডিং বলা হয়।

সব খোলা ট্যাব ব্যবহার করা ট্যাব নয়। মেমরি কম থাকলে, ক্রোম আগ্রহহীন ব্যাকগ্রাউন্ড ট্যাবগুলি বাতিল করতে পারে৷

ট্যাব বাতিল করা Chrome 46 এবং তার উপরে একটি পরীক্ষা হিসাবে উপলব্ধ।

পটভূমি

আপনার খোলা প্রতিটি ট্যাবের জন্য আমাদের রেন্ডারার প্রক্রিয়াটি সাধারণত প্রতি ট্যাবে প্রায় 50MB লাগে, যদিও বেশিরভাগ লোকেরা একবারে একটি মাত্র ট্যাব ব্যবহার করে। আপনার যদি 10টি ট্যাব খোলা থাকে তবে আপনার ব্যাকগ্রাউন্ড ট্যাব স্টেট রাখার জন্য কমপক্ষে 450MB মেমরি খরচ হবে। এটি সময়ের সাথে সাথে কিছুটা অবাধ্য হতে পারে।

ট্যাব প্রতি মেমরি প্রয়োজন

আমাদের লক্ষ্যগুলির মধ্যে একটি হল ট্যাবগুলিতে ব্যবহৃত মেমরি হ্রাস করা যা আপনি আসলে ব্যবহার করছেন না । ক্রোম টাস্ক ম্যানেজারে কোন ট্যাবগুলি আমার সিস্টেম মেমরি গ্রাস করছে তা যদি আমি দেখি, আমি সত্যিই নীচের একটি বা দুটি সাইট 'ব্যবহার' করছি যখন পটভূমিতে থাকা অন্যান্য ট্যাবগুলি অব্যবহৃত থাকে৷

মেমরি প্রয়োজনীয় টাস্ক ম্যানেজার

এখানেই ট্যাব বাতিল করা আমাদের মেমরির ব্যবহার কমাতে সাহায্য করতে পারে।

অব্যবহৃত ট্যাব বাতিল করা হচ্ছে

ট্যাব বাতিল করা ক্রোমকে স্বয়ংক্রিয়ভাবে এমন ট্যাবগুলি বাতিল করার অনুমতি দেয় যেগুলি আপনার কাছে খুব বেশি আগ্রহের নয় যখন এটি সনাক্ত করা হয় যে সিস্টেম মেমরি খুব কম চলছে৷ বর্জন বলতে আমরা কী বুঝি? আচ্ছা, একটি বাতিল ট্যাব কোথাও যায় না। আমরা এটিকে মেরে ফেলি কিন্তু এটি এখনও Chrome ট্যাব স্ট্রিপে দৃশ্যমান। আপনি যদি বাতিল করা ট্যাবে ফিরে যান, ক্লিক করা হলে এটি পুনরায় লোড হবে। ফরোয়ার্ড/ব্যাকওয়ার্ড ট্যাব নেভিগেশনের সময় ফর্মের বিষয়বস্তু, স্ক্রোল পজিশন এবং আরও অনেক কিছু সংরক্ষণ এবং পুনরুদ্ধার করা হয়।

আমাদের আরও একটি নতুন বৈশিষ্ট্য রয়েছে যা স্থানীয়ভাবে সমস্ত ট্যাব সংস্থান ক্যাশে করার অনুমতি দেয় যা আপনি অফলাইনে থাকাকালীন ট্যাব বাতিল করার সাথে সুন্দরভাবে কাজ করে। যখন ট্যাবটি পুনরায় সক্রিয় করা হয় তখন আমরা আপনাকে ক্যাশে করা সংস্করণটি পুনরায় লোড করার বিকল্প অফার করি যা পূর্বে নেটওয়ার্কে লোড করা হয়েছিল৷ ক্যাশে থেকে পৃষ্ঠা পুনঃলোড সক্ষম করতে, আপনি chrome://flags/#show-saved-copy অধীনে আরেকটি পরীক্ষা করে দেখতে পারেন।

আপনি chrome://flags/#enable-tab-discarding এর মাধ্যমে সক্রিয় করে এবং Chrome পুনরায় লঞ্চ করে আজই ট্যাব বাতিল করার চেষ্টা করতে পারেন৷ আপনি একই Chrome chrome://flags পৃষ্ঠার মাধ্যমে এটি সক্ষম বা নিষ্ক্রিয় কিনা তা নিয়ন্ত্রণ করতে পারেন৷

স্ক্রিনশট বাতিল করা ট্যাব সক্ষম করুন৷
রিলঞ্চ বোতামের স্ক্রিনশট।

chrome://discards নামক একটি নতুন পৃষ্ঠা আপনাকে বর্তমানে কোন ট্যাবগুলি খোলা আছে তা তালিকাভুক্ত করতে দেয় এবং আমরা সেগুলি আপনার কাছে কতটা আকর্ষণীয় (আমরা মনে করি) সেগুলি সম্পর্কে কিছু অন্তর্দৃষ্টি ভাগ করে নেওয়ার চেষ্টা করি, অন্ততপক্ষে।

বাতিল করা ট্যাব পৃষ্ঠার স্ক্রিনশট।

বৈশিষ্ট্যটি পরীক্ষা করার জন্য, আপনি হয় আপনার স্বাভাবিক ব্রাউজিং আচরণ চালিয়ে যেতে পারেন যতক্ষণ না আপনার সিস্টেম একটি লো-মেমরি মোডে থাকে, অথবা বিকল্পভাবে 'এখনই ট্যাব বাতিল করুন'-এ ক্লিক করে প্রায়: বাতিল থেকে একটি ট্যাব বাতিল ট্রিগার করতে পারেন। এটি তালিকার শেষ ট্যাবটি বাতিল করবে। এছাড়াও আপনি তালিকা থেকে একটি নির্দিষ্ট ট্যাব এর সংশ্লিষ্ট 'বাতিল করুন' বোতামে ক্লিক করে বাতিল করতে পারেন। একটি বাতিল ট্যাব একটি [বাতিল] উপসর্গ সহ প্রদর্শিত হবে।

বাতিল ট্যাব উদাহরণ স্ক্রিনশট.

ট্যাব বাতিল এই ক্রমে ট্যাব বাতিল করে:

  • অভ্যন্তরীণ পৃষ্ঠা যেমন নতুন ট্যাব পৃষ্ঠা, বুকমার্ক ইত্যাদি।
  • ট্যাব অনেক আগে নির্বাচন করা হয়েছে
  • সম্প্রতি নির্বাচিত ট্যাব
  • একটি উইন্ডোতে অ্যাপ্লিকেশন চলছে
  • পিন করা ট্যাব
  • নির্বাচিত ট্যাব

আমরা Windows এবং Mac OS-এর জন্য Chrome Canary-এ ট্যাব বাতিল করার পরীক্ষা সক্ষম করেছি, একটি Linux বাস্তবায়ন শীঘ্রই আসছে৷

একটি ট্যাব বাতিল করতে হবে কিনা তা দেখার সময় পিন করা ট্যাবগুলিও বিবেচনায় নেওয়া হয়৷

অনুপ্রেরণা: আরে, দুর্দান্ত সাসপেন্ডার

যদি ট্যাব বাতিল করা পরিচিত শোনায়, তবে এর কারণ হল আপনি সম্ভবত দরকারী Chrome এক্সটেনশনগুলি দেখেছেন যা আপনাকে এই ধারণাটির একটি সামান্য সহজ সংস্করণ দেয়, যেমন The Great Suspender ৷ গ্রেট সাসপেন্ডারের লক্ষ্য একটি কাস্টম সময়ের নিষ্ক্রিয়তার পরে ট্যাবগুলি সাসপেন্ড করে Chrome এর মেমরি এবং GPU ফুটপ্রিন্ট হ্রাস করা।

সাসপেন্ডার স্ক্রিনশট।

ট্যাব বাতিল করার মতো, ট্যাবগুলিকে আন-সাসপেন্ড করা যেতে পারে যখন আপনি তাদের সাথে আবার ইন্টারঅ্যাক্ট করতে চান৷ গ্রেট সাসপেন্ডার প্রতিটি ট্যাবের শিরোনাম এবং ফেভিকন রক্ষণাবেক্ষণ করে, সাসপেন্ড করা ট্যাবগুলিকে একটি আবছা অবস্থায় দেখায়, যেকোন সময় তাদের কাছে ফিরে যাওয়ার জন্য এটিকে সোজা-আগামী করে তোলে।

সাসপেন্ডেড ট্যাব ফেভিকন স্ক্রিনশট।

ব্যাকগ্রাউন্ডে যে ট্যাবগুলি আমি সক্রিয়ভাবে ব্যবহার করছি না তা স্থগিত করা হয়েছে, মেমরিতে সংরক্ষণ করা হয়েছে। ট্যাবগুলি আমি এখনও সক্রিয়ভাবে ব্যবহার করছি (GitHub এবং YouTube) যদিও এখনও স্বাভাবিক হিসাবে চলছে।

ট্যাব বাতিল করার সময় আমরা আসলে গ্রেট সাসপেন্ডার এক্সটেনশনের লেখকের সাথে একটি দুর্দান্ত চ্যাট করেছি এবং তারা আমাদেরকে স্থানীয়ভাবে এই সমস্যাটির মোকাবিলা করতে দেখে আনন্দিত যেগুলি একটি এক্সটেনশন সক্ষম হতে পারে তার চেয়ে বেশি দক্ষ, যেমন এর অবস্থা হারানো আপনার ব্যবহারকারীর নিষ্ক্রিয়তা।

ভবিষ্যতের উন্নতি: ট্যাব সিরিয়ালাইজার

ট্যাব সিরিয়ালাইজার হল একটি ভবিষ্যত কাজের অংশ যা আমরা মনে করি ট্যাব বাতিল করার জন্য আমাদের বর্তমান পদ্ধতিতে উল্লেখযোগ্য উন্নতি হতে পারে। এটি একটি ক্রোম ট্যাবের বিষয়বস্তু নেয় এবং এর *বর্তমান* অবস্থাকে একটি বাইনারি ব্লব-এ সিরিয়ালাইজ করে। এই বাইনারি ব্লবটিকে পরে একটি ট্যাবে ডিসিরিয়ালাইজ করা যেতে পারে।

সিরিয়ালাইজারটি ক্রোম, ব্লিঙ্ক এবং ভি 8-এর একটি ট্যাবকে সঠিকভাবে সংরক্ষণ করার জন্য প্রয়োজনীয় প্রায় সবকিছুই সিরিয়ালাইজ করবে (কোন কিছু ক্রোম এক্সটেনশন যা ঐতিহাসিকভাবে এই সমস্যাটি মোকাবেলা করে সহজে অর্জন করতে সক্ষম হয়নি)। সিরিয়ালাইজেশনে স্বাভাবিক সন্দেহভাজনদের অন্তর্ভুক্ত করা হবে: DOM (অনেকগুলি WebGL এবং ক্যানভাস অন্তর্ভুক্ত), CSS এবং V8 JavaScript VM-এর অবস্থা।

সিরিয়ালাইজার ধারণার স্ক্রিনশট

আপনি যদি অ্যান্ড্রয়েড বা ক্রোমওএস ব্যবহার করেন, আপনি হয়তো জানেন যে (এই পোস্টে কভার করা ট্যাব বাতিল করার পরীক্ষার মতো) আমরা মেমরির ব্যবহার কম তা নিশ্চিত করার জন্য ব্যাকগ্রাউন্ড ট্যাবগুলিকে আক্রমণাত্মকভাবে মেরে ফেলি। আমরা যেভাবে এটি মোকাবেলা করি তার সমস্যা হল যে আপনার ট্যাব তার *সমস্ত* অবস্থা হারাবে।

আপনি যখন আবার ট্যাবে আগ্রহ দেখান, তখন আমাদের এটি পুনরায় লোড করতে হবে এবং এর সাথে আপনার সমস্ত মিথস্ক্রিয়া নষ্ট হয়ে যাবে৷ ট্যাব সিরিয়ালাইজার এই সমস্যাটিকে এমনভাবে নিয়ে আসে যা আপনাকে নেটওয়ার্কে ফিরে যাওয়ার প্রয়োজন ছাড়াই প্রায় ঠিক যা ছিলে তা ফিরিয়ে দেয়। আমরা পরবর্তী তারিখে এই কাজের সম্পর্কে আরও তথ্য ভাগ করার জন্য উন্মুখ।

ট্যাব বাতিল করার চেষ্টা করুন এবং আপনি কি মনে করেন তা আমাদের জানান

এই বৈশিষ্ট্যটি আপনার জন্য উপযোগী কিনা এবং এটিকে কীভাবে উন্নত করা যেতে পারে তা আমরা জানতে চাই। এটি ব্যবহার করে দেখুন, এটির সাথে খেলা করুন (বিশেষত আপনি যদি ট্যাব হোর্ডার হন!) এবং মন্তব্যে আপনি কী মনে করেন তা আমাদের জানান৷ :) আপনি যদি crbug.com- এ কোনো ত্রুটির সম্মুখীন হন তার জন্য আপনি যদি টিকিট ফাইল করেন তাহলে আমরা এটির প্রশংসা করব।