কর্মক্ষমতা ব্যবস্থাপনা

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

টেকসই কর্মক্ষমতা

দীর্ঘ-চলমান অ্যাপ্লিকেশনগুলির জন্য (গেম, ক্যামেরা, রেন্ডারস্ক্রিপ্ট , অডিও প্রসেসিং), ডিভাইসের তাপমাত্রার সীমা পৌঁছে যাওয়ায় এবং সিস্টেম অন চিপ (এসওসি) ইঞ্জিনগুলি থ্রোটল হওয়ার কারণে কার্যক্ষমতা নাটকীয়ভাবে পরিবর্তিত হতে পারে। অ্যাপ ডেভেলপাররা উচ্চ-কর্মক্ষমতা, দীর্ঘ-চলমান অ্যাপ তৈরি করে সীমিত কারণ অন্তর্নিহিত প্ল্যাটফর্মের ক্ষমতাগুলি একটি চলমান লক্ষ্য হয়ে ওঠে যখন ডিভাইস গরম হতে শুরু করে।

এই সীমাবদ্ধতাগুলি মোকাবেলা করার জন্য, Android 7.0 টেকসই পারফরম্যান্সের জন্য সমর্থন প্রবর্তন করেছে, দীর্ঘ-চলমান অ্যাপ্লিকেশনগুলির জন্য ডিভাইসের কার্যকারিতা ক্ষমতার উপর ইঙ্গিত প্রদান করতে OEMগুলিকে সক্ষম করে৷ অ্যাপ ডেভেলপাররা দীর্ঘ সময় ধরে ডিভাইস পারফরম্যান্সের একটি অনুমানযোগ্য, সামঞ্জস্যপূর্ণ স্তরের জন্য অ্যাপ্লিকেশনগুলিকে টিউন করতে এই ইঙ্গিতগুলি ব্যবহার করতে পারে।

স্থাপত্য

একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্ল্যাটফর্মকে একটি টেকসই কর্মক্ষমতা মোডে প্রবেশ করার অনুরোধ করতে পারে যেখানে অ্যান্ড্রয়েড ডিভাইস দীর্ঘ সময়ের জন্য পারফরম্যান্সের একটি ধারাবাহিক স্তর রাখতে পারে।

চিত্র 1. টেকসই কর্মক্ষমতা মোড আর্কিটেকচার

বাস্তবায়ন

অ্যান্ড্রয়েড 7.0 এবং পরবর্তীতে টেকসই কর্মক্ষমতা সমর্থন করতে, OEM দের অবশ্যই:

  • সর্বোচ্চ সিপিইউ/জিপিইউ ফ্রিকোয়েন্সি লক করতে বা থার্মাল থ্রটলিং প্রতিরোধ করতে অন্যান্য অপ্টিমাইজেশন সম্পাদন করতে পাওয়ার HAL-এ ডিভাইস-নির্দিষ্ট পরিবর্তন করুন।
  • HAL পাওয়ারে নতুন ইঙ্গিত POWER_HINT_SUSTAINED_PERFORMANCE প্রয়োগ করুন৷
  • isSustainedPerformanceModeSupported() API-এর মাধ্যমে TRUE ফেরত দিয়ে সমর্থন ঘোষণা করুন।
  • Window.setSustainedPerformanceMode প্রয়োগ করুন।

নেক্সাস রেফারেন্স বাস্তবায়নে, পাওয়ার ইঙ্গিত সর্বোচ্চ টেকসই স্তরে CPU এবং GPU-এর সর্বাধিক ফ্রিকোয়েন্সি ক্যাপ করে। মনে রাখবেন যে CPU/GPU ফ্রিকোয়েন্সিতে MAX বার কমিয়ে রাখলে ফ্রেম রেট কমে যাবে, কিন্তু স্থায়িত্বের কারণে এই মোডে এই নিম্ন হার পছন্দ করা হয়। উদাহরণস্বরূপ, সাধারণ সর্বাধিক ঘড়ি ব্যবহার করা একটি ডিভাইস কয়েক মিনিটের জন্য 60 FPS এ রেন্ডার করতে সক্ষম হতে পারে, কিন্তু ডিভাইসটি গরম হয়ে যাওয়ার পরে, 30 মিনিটের শেষে এটি 30 FPS এ থ্রোটল হতে পারে। টেকসই মোড ব্যবহার করার সময়, ডিভাইসটি, উদাহরণস্বরূপ, সমগ্র 30 মিনিটের জন্য 45 FPS এ ধারাবাহিকভাবে রেন্ডার করতে পারে। মোড ব্যবহার করার সময় লক্ষ্য হল একটি ফ্রেম রেট যা মোড ব্যবহার না করার সময় ফ্রেম রেট থেকে বেশি (বা উচ্চতর) এবং সময়ের সাথে সামঞ্জস্যপূর্ণ যাতে বিকাশকারীদের একটি চলমান লক্ষ্য তাড়া করতে না হয়।

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

দ্রষ্টব্য : টেকসই মোড বাস্তবায়নের জন্য MAX ঘড়ির হার ক্যাপিং করার প্রয়োজন নেই।

বৈধতা

OEMs একটি CTS পরীক্ষা ব্যবহার করতে পারে (Android 7.0 এবং পরবর্তী) তাদের টেকসই পারফরম্যান্স API এর বাস্তবায়ন যাচাই করতে। পরীক্ষাটি প্রায় 30 মিনিটের জন্য একটি কাজের চাপ চালায় এবং টেকসই মোড সক্ষম থাকা সহ এবং ছাড়াই কর্মক্ষমতা বেঞ্চমার্ক করে:

  • টেকসই মোড সক্ষম হলে, ফ্রেমের হার অবশ্যই তুলনামূলকভাবে স্থির থাকতে হবে (পরীক্ষা সময়ের সাথে ফ্রেমের হারে পরিবর্তনের শতাংশ পরিমাপ করে এবং <5% পরিবর্তন প্রয়োজন)।
  • টেকসই মোড সক্ষম হলে, মোড অক্ষম থাকা অবস্থায় 30 মিনিটের শেষে ফ্রেম রেট অবশ্যই ফ্রেম হারের চেয়ে কম হবে না।

এছাড়াও, 30 মিনিট ব্যবহারের পরে ডিভাইসটি তাপগতভাবে থ্রোটল না হয় তা নিশ্চিত করতে আপনি বেশ কয়েকটি CPU- এবং GPU- নিবিড় কাজের চাপ দিয়ে ম্যানুয়ালি আপনার বাস্তবায়ন পরীক্ষা করতে পারেন। অভ্যন্তরীণ পরীক্ষায়, আমরা গেমস এবং বেঞ্চমার্কিং অ্যাপস (যেমন gfxbench ) সহ নমুনা ওয়ার্কলোড ব্যবহার করেছি।

এক্সক্লুসিভ কোর

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

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

একটি ডিভাইসে একটি এক্সক্লুসিভ কোর সমর্থন করতে:

  • cpusets সক্ষম করুন এবং একটি cpuset কনফিগার করুন যাতে শুধুমাত্র শীর্ষ অগ্রভাগের অ্যাপ্লিকেশন রয়েছে।
  • নিশ্চিত করুন যে একটি কোর (এটি একচেটিয়া কোর) এই cpuset থেকে থ্রেডগুলির জন্য সংরক্ষিত।
  • এক্সক্লুসিভ কোরের মূল নম্বর ফেরত দিতে getExclusiveCores API প্রয়োগ করুন।

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

Nexus 6P এর জন্য একটি রেফারেন্স বাস্তবায়ন দেখতে, android//device/huawei/angler/power/power.c দেখুন।