Android ডিভাইসের পাওয়ার ও পারফর্ম্যান্স ম্যানেজ করা হলে, বিভিন্ন ধরনের হার্ডওয়্যারে অ্যাপ যাতে ধারাবাহিকভাবে ও মসৃণভাবে চলে তা নিশ্চিত করতে সাহায্য করে। Android 7.0 ও এর পরের যেকোনও ভার্সনে, OEM-রা সাসটেনড পারফর্ম্যান্স হিন্ট সংক্রান্ত সহায়তা প্রয়োগ করতে পারে যা অ্যাপগুলিকে ডিভাইস পারফর্ম্যান্স সামঞ্জস্যপূর্ণ রাখতে এবং CPU-ইনটেনসিভ, ফোরগ্রাউন্ড অ্যাপের পারফর্ম্যান্স উন্নত করতে একটি এক্সক্লুসিভ কোর নির্দিষ্ট করতে দেয়।
স্থায়ী পারফর্ম্যান্স
দীর্ঘ সময় ধরে চলা অ্যাপের (গেম, ক্যামেরা, RenderScript, অডিও প্রসেসিং) ক্ষেত্রে, ডিভাইসের তাপমাত্রা সীমা পেরিয়ে গেলে এবং সিস্টেম অন চিপ (SoC) ইঞ্জিন থ্রটল করা হলে, পারফর্ম্যান্সের ক্ষেত্রে নাটকীয় পরিবর্তন হতে পারে। অ্যাপ ডেভেলপাররা হাই-পারফর্ম্যান্স, দীর্ঘ সময় ধরে চলতে পারে এমন অ্যাপ তৈরি করতে পারেন না, কারণ ডিভাইস গরম হতে শুরু করলে আন্ডারলায়িং প্ল্যাটফর্মের ক্ষমতা পরিবর্তিত হতে থাকে।
এইসব সীমাবদ্ধতা দূর করতে, Android 7.0-এ দীর্ঘক্ষণ ধরে পারফর্ম্যান্স বজায় রাখার সুবিধা যোগ করা হয়েছে। এর ফলে OEM, দীর্ঘক্ষণ ধরে চলা অ্যাপের জন্য ডিভাইসের পারফর্ম্যান্স সংক্রান্ত ক্ষমতা সম্পর্কে ইঙ্গিত দিতে পারে। অ্যাপ ডেভেলপাররা এই ইঙ্গিতগুলি ব্যবহার করে দীর্ঘ সময় ধরে ডিভাইসের পারফর্ম্যান্সের একটি অনুমানযোগ্য, সামঞ্জস্যপূর্ণ লেভেল নিশ্চিত করতে অ্যাপগুলিকে টিউন করতে পারেন।
স্থাপত্যশিল্প
কোনও Android অ্যাপ, প্ল্যাটফর্মকে একটি সাসটেইনড পারফর্ম্যান্স মোডে প্রবেশ করার অনুরোধ করতে পারে যেখানে Android ডিভাইসটি দীর্ঘ সময়ের জন্য পারফর্ম্যান্সের একটি সামঞ্জস্যপূর্ণ লেভেল বজায় রাখতে পারে।

ছবি ১. সাস্টেনড পারফর্ম্যান্স মোড আর্কিটেকচার।
প্রয়োগ
Android 7.0 এবং তার পরবর্তী ভার্সনে পারফর্ম্যান্স বজায় রাখতে, OEM-কে অবশ্যই:
- সর্বাধিক CPU/GPU ফ্রিকোয়েন্সি লক করতে বা থার্মাল থ্রটলিং প্রতিরোধ করতে অন্যান্য অপ্টিমাইজেশন পারফর্ম করতে পাওয়ার HAL-এ ডিভাইস-নির্দিষ্ট পরিবর্তন করুন।
- পাওয়ার HAL-এ নতুন ইঙ্গিত
POWER_HINT_SUSTAINED_PERFORMANCEপ্রয়োগ করুন। -
isSustainedPerformanceModeSupported()API-এর মাধ্যমে TRUE রিটার্ন করে কাজ করে বলে ঘোষণা করুন। Window.setSustainedPerformanceModeপ্রয়োগ করুন।
Nexus রেফারেন্স ইমপ্লিমেন্টেশনে, পাওয়ার হিন্ট CPU ও GPU-র সর্বোচ্চ ফ্রিকোয়েন্সি সবচেয়ে বেশি টেকসই লেভেলে ক্যাপ করে। মনে রাখবেন যে CPU/GPU ফ্রিকোয়েন্সিতে MAX বার কমালে ফ্রেম রেট কমে যাবে, তবে এই মোডে এর স্থায়িত্বের কারণে এই কম রেটটি পছন্দ করা হয়। যেমন, সাধারণ ম্যাক্স ক্লক ব্যবহার করা কোনও ডিভাইস কয়েক মিনিটের জন্য ৬০ FPS-এ রেন্ডার করতে পারে, কিন্তু ডিভাইস গরম হয়ে গেলে, ৩০ মিনিট পরে এটি ৩০ FPS-এ থ্রটল করতে পারে। সাস্টেনড মোড ব্যবহার করার সময়, ডিভাইসটি, যেমন ধরুন, সম্পূর্ণ ৩০ মিনিট ধরে ধারাবাহিকভাবে ৪৫ FPS-এ রেন্ডার করতে পারে। লক্ষ্য হল, মোড ব্যবহার করার সময় ফ্রেম রেট যেন মোড ব্যবহার না করার সময়কার ফ্রেম রেটের সমান (বা তার চেয়ে বেশি) হয় এবং সময়ের সাথে সাথে সামঞ্জস্যপূর্ণ হয় যাতে ডেভেলপারদের পরিবর্তনশীল লক্ষ্য তাড়া করতে না হয়।
আমরা জোর দিয়ে সাজেস্ট করি যে সাসটেন মোড এমনভাবে প্রয়োগ করুন যাতে ডিভাইস সর্বোচ্চ সম্ভাব্য সাসটেন পারফর্ম্যান্স অর্জন করতে পারে—শুধু পরীক্ষার জন্য প্রয়োজনীয় ন্যূনতম ভ্যালু নয় (যেমন, সর্বোচ্চ সম্ভাব্য MAX ফ্রিকোয়েন্সি ক্যাপ বেছে নিন যা ডিভাইসে থার্মাল থ্রটলিংয়ের কারণ হয় না)।
মনে রাখবেন: সাসটেইনড মোড প্রয়োগ করার জন্য MAX ক্লক রেট ক্যাপ করার প্রয়োজন নেই।
যাচাইকরণ
OEM-গুলি CTS টেস্ট (Android 7.0 এবং তার পরবর্তী ভার্সন) ব্যবহার করে তাদের সাসটেইন্ড পারফর্ম্যান্স API-এর প্রয়োগ যাচাই করতে পারে। টেস্টটি প্রায় ৩০ মিনিট ধরে ওয়ার্কলোড চালায় এবং সাসটেন মোড চালু ও বন্ধ রেখে পারফর্ম্যান্সের বেঞ্চমার্ক তৈরি করে:
- সাসটেইনড মোড চালু থাকলে, ফ্রেম রেট তুলনামূলকভাবে স্থির থাকতে হবে (পরীক্ষাটি সময়ের সাথে সাথে ফ্রেম রেটের পরিবর্তনের শতাংশ পরিমাপ করে এবং এর জন্য <৫% পরিবর্তন প্রয়োজন)।
- সাস্টেন্ড মোড চালু থাকলে, মোড বন্ধ করার পরে ৩০ মিনিট শেষে ফ্রেম রেট যা ছিল তার থেকে ফ্রেম রেট কম হলে চলবে না।
এছাড়াও, ডিভাইসটি ৩০ মিনিট ব্যবহারের পরে থার্মাল থ্রটলিং হচ্ছে কিনা তা নিশ্চিত করতে, আপনি একাধিক CPU- এবং GPU-ইনটেনসিভ ওয়ার্কলোডের মাধ্যমে আপনার ইমপ্লিমেন্টেশন ম্যানুয়ালি পরীক্ষা করতে পারেন। ইন্টার্নাল টেস্টিংয়ের সময়, আমরা গেম ও বেঞ্চমার্কিং অ্যাপ (যেমন, gfxbench) সহ স্যাম্পেল ওয়ার্কলোড ব্যবহার করেছি।
এক্সক্লুসিভ কোর
CPU-ইনটেনসিভ, সময়-সংবেদনশীল ওয়ার্কলোডের ক্ষেত্রে, অন্য থ্রেড দ্বারা প্রি-এমপ্টেড হওয়া, ফ্রেম ডেডলাইন পূরণ করা বা না করার মধ্যে পার্থক্য হতে পারে। যেসব অ্যাপের ক্ষেত্রে লেটেন্সি ও ফ্রেম রেট সংক্রান্ত কঠোর প্রয়োজনীয়তা থাকে (যেমন, অডিও বা ভার্চুয়াল রিয়েলিটি অ্যাপ), সেগুলির জন্য এক্সক্লুসিভ CPU কোর থাকলে গ্রহণযোগ্য লেভেলের পারফর্ম্যান্স নিশ্চিত করা যায়।
Android 7.0 বা তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইস এখন স্পষ্টভাবে সবচেয়ে গুরুত্বপূর্ণ ফোরগ্রাউন্ড অ্যাপের জন্য একটি কোর রিজার্ভ করতে পারবে। এর ফলে সব ফোরগ্রাউন্ড অ্যাপের পারফর্ম্যান্স উন্নত হবে এবং যেসব অ্যাপে খুব বেশি ইনটেন্সিটি ওয়ার্কলোড থাকে, সেগুলির সিপিইউ কোরে কীভাবে কাজ অ্যাসাইন করা হয় তার উপর আরও বেশি নিয়ন্ত্রণ পাবে।
ডিভাইসে এক্সক্লুসিভ কোরের সুবিধা পেতে:
cpusetsচালু করুন এবং এমন একটিcpusetকনফিগার করুন যাতে শুধুমাত্র সেরা ফোরগ্রাউন্ড অ্যাপ থাকে।- একটি কোর (এটি হল এক্সক্লুসিভ কোর) যেন
এই
cpusetথেকে থ্রেডের জন্য রিজার্ভ করা থাকে তা নিশ্চিত করুন। - এক্সক্লুসিভ কোরের কোর নম্বর ফেরত দিতে getExclusiveCores API প্রয়োগ করুন।
কোন কোরে কোন প্রসেস শিডিউল করা হয়েছে তা নির্ধারণ করতে, যেকোনও ওয়ার্কলোড চালানোর সময়
systrace ব্যবহার করুন এবং যাচাই করে দেখুন যে টপ ফোরগ্রাউন্ড অ্যাপ ছাড়া অন্য অ্যাপ থেকে কোনও ইউজারস্পেস থ্রেড
এক্সক্লুসিভ কোরে
শিডিউল করা হয়নি।
Nexus 6P-এর জন্য রেফারেন্স প্রয়োগ দেখতে, android//device/huawei/angler/power/power.c দেখুন।