একটি মাইক্রোবেঞ্চমার্ক প্রোফাইল

ডিফল্টরূপে, মাইক্রোবেঞ্চমার্ক আপনাকে কার্যকর করা কোডের সময় এবং বরাদ্দ সম্পর্কে তথ্য দেয়। আপনি যদি তদন্ত করতে চান কেন পরিমাপ করা কোডটি ধীরে চলছে, তবে সমর্থিত OS সংস্করণগুলিতে ডিফল্টরূপে ক্যাপচার করা পদ্ধতির ট্রেসটি পরিদর্শন করুন —অথবা অন্যান্য প্রোফাইলিং কনফিগারেশন নির্বাচন করুন৷

প্রোফাইলার কনফিগারেশন নির্বাচন করতে, MethodTracing (ডিফল্ট), StackSampling , বা কোন যুক্তি None , যেমনটি নিম্নলিখিত স্নিপেটে দেখানো হয়েছে এর সাথে ইনস্ট্রুমেন্টেশন রানার আর্গুমেন্ট androidx.benchmark.profiling.mode যোগ করুন।

বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য, রেকর্ড জাভা/কোটলিন পদ্ধতিগুলি দেখুন। MethodTracing হল ট্রেসিংয়ের সমতুল্য, এবং StackSampling হল সেই নথিতে সংজ্ঞায়িত নমুনার সমতুল্য।

গ্রোভি

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"]= 'StackSampling'
    }
}

কোটলিন

android {
    defaultConfig {
        // must be one of: 'None', 'StackSampling', or 'MethodTracing'
        testInstrumentationRunnerArguments["androidx.benchmark.profiling.mode"] = "StackSampling"
    }
}

যখন আপনি একটি বেঞ্চমার্ক প্রোফাইল করেন, তখন JSON ফলাফলের পাশাপাশি ডিরেক্টরির হোস্টে একটি আউটপুট .trace ফাইল কপি করা হয়। অ্যান্ড্রয়েড স্টুডিওতে প্রোফাইলিং ফলাফলগুলি পরিদর্শন করতে, মাইক্রোবেঞ্চমার্ক ফলাফলগুলিতে পদ্ধতি ট্রেস বা স্ট্যাক স্যাম্পলিং ট্রেস লিঙ্কটি নির্বাচন করুন৷

পদ্ধতি ট্রেসিং

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

কোড পরিমাপের পরে ক্রমানুসারে প্রোফাইলিং ঘটে, তাই আপনার পরীক্ষাটি সঠিক সময় এবং প্রোফাইলিং ফলাফল উভয়ই আউটপুট করে।

পদ্ধতি ট্রেসিং ডিফল্টরূপে চালু আছে.

দ্রষ্টব্য: কিছু Android OS এবং ART সংস্করণে, পদ্ধতি ট্রেসিং ডিফল্টরূপে বন্ধ থাকে। এই ক্ষেত্রে, অ্যান্ড্রয়েড স্টুডিও একটি সতর্কতা আউটপুট।

স্ট্যাকস্যাম্পলিং

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

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

Android 10 (API 29) এবং উচ্চতর তে, স্ট্যাক স্যাম্পলিং সি++ কোড সহ অ্যাপ কলস্ট্যাকের নমুনা করতে Simpleperf ব্যবহার করে। অ্যান্ড্রয়েড 9 (এপিআই 28) এবং তার চেয়ে কম সময়ে, এটি স্ট্যাকের নমুনাগুলি ক্যাপচার করতে Debug.startMethodTracingSampling ব্যবহার করে।

আপনি অন্য ইন্সট্রুমেন্টেশন আর্গুমেন্ট যোগ করে এই প্রোফাইলিং মোড কনফিগার করতে পারেন:

  • androidx.benchmark.profiling.sampleFrequency

    • প্রতি সেকেন্ডে ক্যাপচার করার জন্য স্ট্যাক নমুনার সংখ্যা।
    • আর্গুমেন্টের ধরন: পূর্ণসংখ্যা
    • প্রতি সেকেন্ডে 1000টি নমুনা ডিফল্ট।
  • androidx.benchmark.profiling.sampleDurationSeconds

    • বেঞ্চমার্ক চালানোর সময়কাল।
    • আর্গুমেন্টের ধরন: পূর্ণসংখ্যা
    • ডিফল্ট 5 সেকেন্ড।
  • androidx.benchmark.profiling.skipWhenDurationRisksAnr

    • ANR হওয়ার সম্ভাবনা থাকলে পদ্ধতি ট্রেসিং এড়িয়ে যায়। CI রানের জন্য আপনার এটি চালু রাখা উচিত, যেহেতু ANR দীর্ঘ CI রানের সময় সমস্যা সৃষ্টি করতে পারে।
    • আর্গুমেন্ট টাইপ: বুলিয়ান
    • ডিফল্ট থেকে true

কোনোটিই নয়

এই যুক্তি একটি প্রোফাইলিং ফাইল ক্যাপচার না. সময় এবং বরাদ্দ সম্পর্কে তথ্য এখনও পরিমাপ করা হয়.

{% শব্দার্থে %} {% endverbatim %} {% শব্দার্থে %} {% endverbatim %}