ম্যাক্রোবেঞ্চমার্ক ইনস্ট্রুমেন্টেশন আর্গুমেন্ট

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

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

অ্যান্ড্রয়েড স্টুডিও থেকে বেঞ্চমার্ক চালানোর সময় আপনি ইন্সট্রুমেন্টেশন আর্গুমেন্ট সেট আপ করতে পারেন। আর্গুমেন্ট পরিবর্তন করতে, নিম্নলিখিত করুন:

  1. সম্পাদনা ক্লিক করে রান কনফিগারেশন সম্পাদনা করুন এবং তারপর কনফিগারেশনে ক্লিক করুন।
    রান কনফিগারেশন সম্পাদনা করুন
    চিত্র 1. রান কনফিগারেশন সম্পাদনা করুন।
  2. ক্লিক করে ইন্সট্রুমেন্টেশন আর্গুমেন্ট এডিট করুন ইনস্ট্রুমেন্টেশন আর্গুমেন্টের দ্বারা আরও
    ইন্সট্রুমেন্টেশন আর্গুমেন্ট সম্পাদনা করুন
    চিত্র 2. ইন্সট্রুমেন্টেশন আর্গুমেন্ট সম্পাদনা করুন।
  3. ইনস্ট্রুমেন্টেশন এক্সট্রা প্যারামসের অধীনে Add এ ক্লিক করে প্রয়োজনীয় ইন্সট্রুমেন্টেশন আর্গুমেন্ট যোগ করুন।
    প্রয়োজনীয় উপকরণ যুক্তি যোগ করুন
    চিত্র 3. প্রয়োজনীয় ইন্সট্রুমেন্টেশন আর্গুমেন্ট যোগ করুন।

আপনি যদি কমান্ড লাইন থেকে ম্যাক্রোবেঞ্চমার্ক চালান, -P android.testInstrumentationRunnerArguments.[name of the argument] :

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile

আপনি যদি am instrument কমান্ডটি সরাসরি ব্যবহার করেন (যা CI পরীক্ষার পরিবেশে হতে পারে), তাহলে -e এর সাথে am instrument এ আর্গুমেন্টটি পাস করুন:

adb shell am instrument -e androidx.benchmark.enabledRules BaselineProfile -w com.example.macrobenchmark/androidx.test.runner.AndroidJUnitRunner

CI-তে বেঞ্চমার্ক কনফিগার করার বিষয়ে আরও তথ্যের জন্য, CI-এ বেঞ্চমার্কিং দেখুন

androidx.benchmark.compilation.enabled

আপনাকে বেঞ্চমার্কের প্রতিটি পুনরাবৃত্তির মধ্যে সংকলন অক্ষম করতে দেয়। ডিফল্টরূপে, লক্ষ্য অ্যাপ্লিকেশনটি পুনরায় ইনস্টল করা হয় এবং প্রতিটি বেঞ্চমার্কের মধ্যে পুনরায় কম্পাইল করা হয়, যাতে CompilationMode measureRepeated । এটি নিষ্ক্রিয় করা আপনাকে পুনরায় ইনস্টল এবং সংকলন উভয়ই এড়িয়ে যেতে দেয়, উদাহরণস্বরূপ, যদি আপনি টেস্ট স্যুট চালানোর আগে একবার লক্ষ্য অ্যাপটি সম্পূর্ণরূপে কম্পাইল করতে চান এবং সম্পূর্ণরূপে সংকলিত লক্ষ্যের বিপরীতে সমস্ত মানদণ্ড চালাতে চান।

  • আর্গুমেন্ট টাইপ: বুলিয়ান
  • এতে ডিফল্ট: true

androidx.benchmark.dryRunMode.enable

সেগুলি সঠিকভাবে কাজ করে কিনা তা যাচাই করতে আপনাকে একটি একক লুপে বেঞ্চমার্কগুলি চালাতে দেয়৷ আপনি যাচাইকরণের অংশ হিসাবে নিয়মিত পরীক্ষার সাথে এটি ব্যবহার করতে পারেন।

  • আর্গুমেন্ট টাইপ: বুলিয়ান
  • এতে ডিফল্ট: false

androidx.benchmark.enabledRules

ফিল্টারিং শুধুমাত্র এক ধরনের পরীক্ষায় চালানোর অনুমতি দেয়: বেসলাইন প্রোফাইল জেনারেশন বা ম্যাক্রোবেঞ্চমার্ক পরীক্ষা। কমা দ্বারা পৃথক করা তালিকাগুলিও সমর্থিত।

  • আর্গুমেন্ট টাইপ : স্ট্রিং
  • উপলব্ধ বিকল্প:
    • Macrobenchmark
    • BaselineProfile
  • এর জন্য ডিফল্ট: নির্দিষ্ট করা নেই

androidx.benchmark.junit4.SideEffectRunListener

বেঞ্চমার্ক চলার সময় যদি সম্পর্কহীন ব্যাকগ্রাউন্ডের কাজ চালানো হয় তাহলে আপনি অসঙ্গত বেঞ্চমার্ক ফলাফল পেতে পারেন।

বেঞ্চমার্কিং চলাকালীন ব্যাকগ্রাউন্ডের কাজ অক্ষম করতে listener ইন্সট্রুমেন্টেশন আর্গুমেন্ট টাইপ androidx.benchmark.junit4.SideEffectRunListener এ সেট করুন।

  • আর্গুমেন্ট টাইপ: স্ট্রিং
  • উপলব্ধ বিকল্প:
    • androidx.benchmark.junit4.SideEffectRunListener
  • এর জন্য ডিফল্ট: নির্দিষ্ট করা নেই

androidx.benchmark.fullTracing.enable

androidx.tracing.perfetto ট্রেসপয়েন্ট যেমন জেটপ্যাক কম্পোজ কম্পোজিশন ট্রেসিং সক্ষম করে।

বেঞ্চমার্ক থেকে কম্পোজিশন ট্রেসিং ক্যাপচার করতে আপনাকে আপনার প্রোজেক্ট সেট আপ করতে হবে। আরও তথ্যের জন্য, জেটপ্যাক ম্যাক্রোবেঞ্চমার্কের সাথে একটি ট্রেস ক্যাপচার দেখুন।

  • আর্গুমেন্ট টাইপ : বুলিয়ান
  • ডিফল্টে : false

androidx.benchmark.profiling.mode

বেঞ্চমার্ক চালানোর সময় ট্রেস ফাইল ক্যাপচার করার অনুমতি দেয়। উপলব্ধ বিকল্পগুলি মাইক্রোবেঞ্চমার্ক লাইব্রেরির মতই—আরো তথ্যের জন্য, প্রোফাইল এ মাইক্রোবেঞ্চমার্ক- এ বিবরণ দেখুন।

  • আর্গুমেন্ট টাইপ: স্ট্রিং
  • উপলব্ধ বিকল্প:
    • MethodTracing
    • StackSampling
    • None
  • এতে ডিফল্ট: None

androidx.benchmark.startupProfiles.enable

বেঞ্চমার্কিংয়ের সময় আপনাকে স্টার্টআপ প্রোফাইলের জেনারেশন অক্ষম করতে দেয়।

  • আর্গুমেন্ট টাইপ : বুলিয়ান
  • এতে ডিফল্ট: true

androidx.benchmark.suppressErrors

সতর্কবার্তায় পরিণত হতে ত্রুটির কমা-বিচ্ছিন্ন তালিকা গ্রহণ করে।

  • আর্গুমেন্টের ধরন : স্ট্রিংয়ের তালিকা
  • উপলব্ধ বিকল্প:

    • DEBUGGABLE

      DEBUGGABLE ত্রুটি নির্দেশ করে যে টার্গেট প্যাকেজটি তার ম্যানিফেস্টে debuggable=true দিয়ে চলছে, যা ডিবাগিং বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য রানটাইম কর্মক্ষমতা ব্যাপকভাবে হ্রাস করে। এই ত্রুটি এড়াতে, debuggable=false দিয়ে বেঞ্চমার্ক চালান। ডিবাগেবল আর্গুমেন্ট এমনভাবে এক্সিকিউশনের গতিকে প্রভাবিত করে যার মানে বেঞ্চমার্কের উন্নতিগুলি প্রকৃত ব্যবহারকারীর অভিজ্ঞতার সাথে সম্পৃক্ত নাও হতে পারে বা রিলিজ পারফরম্যান্স রিগ্রেস করতে পারে।

    • LOW-BATTERY

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

    • EMULATOR

      EMULATOR ত্রুটি আপনাকে বলে যে বেঞ্চমার্কটি একটি এমুলেটরে চলছে, যা প্রকৃত ব্যবহারকারী ডিভাইসের প্রতিনিধি নয়। এমুলেটর বেঞ্চমার্কের উন্নতিগুলি একজন প্রকৃত ব্যবহারকারীর অভিজ্ঞতাকে বহন করতে পারে না বা বাস্তব ডিভাইসের কার্যকারিতা প্রত্যাহার করতে পারে। আপনার পরিবর্তে বেঞ্চমার্ক করার জন্য একটি শারীরিক ডিভাইস ব্যবহার করা উচিত। চরম সতর্কতার সাথে এই ত্রুটিটি দমন করুন।

    • NOT-PROFILEABLE

      টার্গেট প্যাকেজ $packageName <profileable shell=true> ছাড়াই চলছে। অ্যাপ্লিকেশান বা লাইব্রেরিতে সংজ্ঞায়িত সিস্টেম ট্রেসিং বিভাগগুলির মতো লক্ষ্য প্রক্রিয়া থেকে ম্যাক্রোবেঞ্চমার্ককে বিস্তারিত ট্রেস তথ্য ক্যাপচার করতে দেওয়ার জন্য Android 10 এবং 11-এ প্রোফাইলেবল প্রয়োজন। চরম সতর্কতার সাথে এই ত্রুটিটি দমন করুন।

    • METHOD-TRACING-ENABLED

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

  • ডিফল্ট : একটি খালি তালিকা

অতিরিক্ত টেস্টআউটপুটডির

ডিভাইসে JSON বেঞ্চমার্ক রিপোর্ট এবং প্রোফাইলিং ফলাফল কোথায় সংরক্ষিত হয় তা কনফিগার করে।

  • আর্গুমেন্ট টাইপ: পাথ স্ট্রিং
  • এতে ডিফল্ট: APK এর বাহ্যিক ডিরেক্টরি পরীক্ষা করুন
{%শব্দে%} {% endverbatim %} {%শব্দে%} {% endverbatim %}