ক্রোম 57 এ ব্যাকগ্রাউন্ড ট্যাব

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

পটভূমির জন্য একটি অ্যাপ্লিকেশন অপ্টিমাইজ করা

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

কিছু সাইটের জন্য , এই সাধারণ অপ্টিমাইজেশানটি সিপিইউ ব্যবহারকে 75% পর্যন্ত কমাতে পারে:

var doVisualUpdates = true;

document.addEventListener('visibilitychange', function(){
    doVisualUpdates = !document.hidden;
});

function update() {
    if (!doVisualUpdates) {
    return;
    }
    doStuff();
}

নীতিমালা

অনুরোধ অ্যানিমেশন ফ্রেম()

ডকুমেন্টেশন অনুযায়ী, যখন কোনো পৃষ্ঠা ব্যাকগ্রাউন্ডে থাকে তখন Chrome requestAnimationFrame() কল করে না। এই আচরণ 2011 সাল থেকে করা হয়েছে।

পটভূমি টাইমার প্রান্তিককরণ

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

মনে রাখবেন যে অডিও শ্রবণযোগ্য বলে বিবেচিত হয় যখন এবং শুধুমাত্র যখন Chrome অডিও আইকন দেখায়। নীরব অডিও স্ট্রীম ছাড় দেয় না।

বাজেট-ভিত্তিক ব্যাকগ্রাউন্ড টাইমার থ্রটলিং

Chrome 57-এ শিপিং , বাজেট-ভিত্তিক টাইমার থ্রটলিং হল টাইমার অ্যালাইনমেন্ট মেকানিজমের আরও একটি এক্সটেনশন, যা ব্যাকগ্রাউন্ড টাইমার CPU ব্যবহারে একটি অতিরিক্ত সীমা স্থাপন করে। এটি নিম্নরূপ কাজ করে:

  • ব্যাকগ্রাউন্ডে টাইমার চালানোর জন্য প্রতিটি ব্যাকগ্রাউন্ড ট্যাবে একটি টাইম বাজেট (সেকেন্ডে) থাকে।
  • পটভূমিতে 10 সেকেন্ড পরে একটি পৃষ্ঠা সময় বাজেটের সীমাবদ্ধতা সাপেক্ষে।
  • একটি টাইমার টাস্ক শুধুমাত্র তখনই চালানোর অনুমতি দেওয়া হয় যখন সময় বাজেট অ-নেতিবাচক হয়।
  • একটি টাইমার কার্যকর করার পরে, এর রান টাইম বাজেট থেকে বিয়োগ করা হয়।
  • বাজেট ক্রমাগত সময়ের সাথে পুনরুত্থিত হয় (বর্তমানে প্রতি সেকেন্ডে 0.01 সেকেন্ডের হারে সেট করা হয়েছে)। মনে রাখবেন যে ক্রোম থ্রোটলিং আচরণ সম্পর্কে আরও ডেটা সংগ্রহ করার কারণে এই বাজেটের পুনর্জন্মের হার পরিবর্তন করা যেতে পারে।

এই থ্রটলিং থেকে অনেকগুলি স্বয়ংক্রিয় ছাড় রয়েছে:

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

মনে রাখবেন যে এটি তার প্রক্রিয়া প্রাচীর সময় ব্যবহার করে, CPU সময় নয়। এটি CPU সময়ের একটি ভাল আনুমানিক এবং দীর্ঘ সময়ের জন্য প্রধান থ্রেড ব্লক করার শাস্তি দেয়।

অবশেষে, মনে রাখবেন যে আপনি যদি ব্যাকগ্রাউন্ডে দীর্ঘ টাস্ক ব্যবহার করেন, আপনার অ্যাপ্লিকেশনটি খুব দীর্ঘ সময়ের জন্য (আপনার টাস্কের সময়কালের 100 গুণ পর্যন্ত) থ্রোটল হতে পারে। পারফরম্যান্স নির্দেশিকা অনুসারে আপনার কাজকে 50ms বা তার কম অংশে ভাগ করুন এবং পটভূমিতে অপ্রয়োজনীয় কাজ করা এড়াতে visibilityChange শ্রোতা ব্যবহার করুন।

অপ্ট-আউট

ক্রোম --disable-background-timer-throttling পতাকা প্রদান করে যেমন টেস্ট স্যুট চালানো এবং অন্যান্য ব্যবহারকারী-অনুমোদিত ভারী গণনার ব্যবহারের ক্ষেত্রে।