منتشر شده : اندروید ۱۱ (API سطح ۳۰)
دستگاههای اندروید میتوانند کلاکبندی را به صورت پویا و بر اساس بار سیستم تغییر دهند. این رفتار برای صرفهجویی در مصرف برق در حین استفاده مفید است، اما میتواند دستیابی به دادههای عملکرد قابل اعتماد را دشوار کند. اگر میخواهید سرعت اجرای یک قطعه کد را برای جلوگیری از رگرسیون تعیین کنید، یا اگر یک بهینهسازی قابل تکرار است، اگر نتایج شما با سرعت کلاک ثابت آزمایش نشوند، قابل اعتماد نخواهند بود. با کلاکهای ثابت، میتوانید تست A/B دقیقی از عملکرد انجام دهید بدون اینکه تغییر در فرکانس CPU یک عامل باشد.
حالت عملکرد ثابت، ساعتهای CPU و GPU را با یک حد بالا و پایین تنظیم میکند. در دستگاههای مدرنتر، حد بالا و پایین روی یک نقطه تنظیم میشوند و واریانس را حذف میکنند. این نقطه کار CPU/GPU مختص دستگاه است. حالت عملکرد ثابت حداکثر عملکرد دستگاه را ارائه نمیدهد، بلکه یک نقطه کار پایدارتر و پایینتر است. در حالی که نقطه کار میتواند برای مدت محدودی پایدار باشد، نمیتواند به طور نامحدود پایدار باشد. حالت عملکرد ثابت سایر رفتارهای عملکرد پویا، مانند انتخاب هسته را غیرفعال نمیکند. به همین دلیل توصیه میکنیم بار کاری خود را چندین بار اجرا کنید و فقط اجراهایی را مقایسه کنید که از هسته یکسانی استفاده میکنند.
شما میتوانید حالت عملکرد ثابت را با دستور adb زیر فعال کنید:
adb shell cmd power set-fixed-performance-mode-enabled [true|false]دستگاهی که در حالت عملکرد ثابت (fixed performance mode) کار میکند، همچنان میتواند بیش از حد گرم شود، زیرا این حالت، دستگاه را در حالت پایدار حرارتی قرار نمیدهد. به همین دلیل، موارد زیر را برای اجرای بنچمارک توصیه میکنیم:
- قبل از شروع کار، صبر کنید تا دستگاه به حالت پایدار حرارتی بازگردد.
- وضعیت حرارتی دستگاه را در طول آزمایش زیر نظر داشته باشید تا بین تأثیر کد معیار و رویدادهای حرارتی تمایز قائل شوید.