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

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

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

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

  1. Edit-এ ক্লিক করে এবং আপনি যে কনফিগারেশনটি সম্পাদনা করতে চান তা নির্বাচন করে রান কনফিগারেশন সম্পাদনা করুন।
    চিত্র ১. রান কনফিগারেশন সম্পাদনা করুন।
  2. ইন্সট্রুমেন্টেশন আর্গুমেন্ট ক্ষেত্রের পাশে ক্লিক করে ইন্সট্রুমেন্টেশন আর্গুমেন্ট সম্পাদনা করুন।
    চিত্র ২। ইন্সট্রুমেন্টেশন আর্গুমেন্ট সম্পাদনা করুন।
  3. করুন ক্লিক করুন এবং প্রয়োজনীয় উপকরণ যুক্তি যোগ করুন।
    চিত্র ৩। ইন্সট্রুমেন্টেশন আর্গুমেন্ট যোগ করুন।

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

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling

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

adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner

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

androidx.benchmark.cpuEventCounter.enable (পরীক্ষামূলক)

androidx.benchmark.cpuEventCounter.events এ নির্দিষ্ট করা CPU ইভেন্টগুলি গণনা করে। রুট অ্যাক্সেস প্রয়োজন।

  • আর্গুমেন্টের ধরণ: বুলিয়ান
  • ডিফল্ট: মিথ্যা

androidx.benchmark.cpuEventCounter.events (পরীক্ষামূলক)

কোন ধরণের CPU ইভেন্ট গণনা করতে হবে তা নির্দিষ্ট করে। এই আর্গুমেন্টটি ব্যবহার করতে androidx.benchmark.cpuEventCounter.enable কে true তে সেট করতে হবে।

  • আর্গুমেন্টের ধরণ: কমা দ্বারা পৃথক করা স্ট্রিংগুলির তালিকা
  • উপলব্ধ বিকল্প:
    • Instructions
    • CPUCycles
    • L1DReferences
    • L1DMisses
    • BranchInstructions
    • BranchMisses
    • L1IReferences
    • L1IMisses
  • ডিফল্টরূপে: Instructions , CpuCycles , BranchMisses

androidx.benchmark.dryRunMode.enable সম্পর্কে

সঠিকভাবে কাজ করছে কিনা তা যাচাই করার জন্য আপনাকে একটি একক লুপে বেঞ্চমার্ক চালানোর সুযোগ দেয়।

এর অর্থ:

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

এটি পরীক্ষার থ্রুপুট এবং বিল্ড এবং পরিমাপের সঠিকতার উপর বেঞ্চমার্ক লজিক যাচাই করার জন্য অপ্টিমাইজ করে।

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

androidx.benchmark.iterations সম্পর্কে

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

  • আর্গুমেন্টের ধরণ: পূর্ণসংখ্যা
  • ডিফল্ট: 50

androidx.benchmark.killবিদ্যমানপারফেটোরেকর্ডিং

ডিফল্টরূপে, মাইক্রোবেঞ্চমার্ক হস্তক্ষেপ কমাতে নতুন ট্রেস শুরু করার সময় বিদ্যমান যেকোনো পারফেটো (সিস্টেম ট্রেস) রেকর্ডিং বন্ধ করে দেয়। এই আচরণটি অক্ষম করতে, false পাস করুন।

  • আর্গুমেন্টের ধরণ: বুলিয়ান
  • ডিফল্ট: true

androidx.benchmark.output.enable সম্পর্কে

ফলাফল JSON ফাইলটি বহিরাগত স্টোরেজে লেখা সক্ষম করে।

  • আর্গুমেন্টের ধরণ: বুলিয়ান
  • ডিফল্ট: true

androidx.benchmark.profileing.mode সম্পর্কে

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

মনে রাখবেন যে কিছু অ্যান্ড্রয়েড ওএস সংস্করণ পরবর্তী পরিমাপ প্রভাবিত না করে পদ্ধতি ট্রেসিং সমর্থন করে না। এটি প্রতিরোধ করার জন্য মাইক্রোবেঞ্চমার্ক একটি ব্যতিক্রম দেয়, তাই যখন এটি করা নিরাপদ তখনই পদ্ধতি ট্রেস ক্যাপচার করার জন্য ডিফল্ট আর্গুমেন্ট ব্যবহার করুন। ইস্যু #316174880 দেখুন।

  • আর্গুমেন্টের ধরণ: স্ট্রিং
  • উপলব্ধ বিকল্প:
    • MethodTracing
    • StackSampling
    • None
  • ডিফল্টরূপে: MethodTracing নিরাপদ সংস্করণ যা কেবলমাত্র একটি মেথড ট্রেস ক্যাপচার করে যদি ডিভাইসটি পরিমাপকে প্রভাবিত না করে তা করতে পারে।

androidx.benchmark.suppressErrors সম্পর্কে

সতর্কতায় রূপান্তর করার জন্য কমা দ্বারা পৃথক ত্রুটির তালিকা গ্রহণ করে।

  • আর্গুমেন্টের ধরণ: স্ট্রিংগুলির তালিকা
  • উপলব্ধ বিকল্প:
    • DEBUGGABLE
    • LOW-BATTERY
    • EMULATOR
    • CODE-COVERAGE
    • UNLOCKED
    • SIMPLEPERF
    • ACTIVITY-MISSING
  • ডিফল্ট: একটি খালি তালিকা

অতিরিক্ত পরীক্ষা-আউটপুটডির

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

  • আর্গুমেন্টের ধরণ: ফাইল পাথ স্ট্রিং
  • ডিফল্টরূপে: APK এর বহিরাগত ডিরেক্টরি পরীক্ষা করুন

শ্রোতা

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

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

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