ডিফল্টরূপে, মাইক্রোবেঞ্চমার্ক আপনাকে কার্যকর করা কোডের সময় এবং বরাদ্দ সম্পর্কে তথ্য দেয়। আপনি যদি তদন্ত করতে চান কেন পরিমাপ করা কোড ধীরে চলছে, তাহলে আপনি CPU প্রোফাইলার সংযুক্ত করে বেঞ্চমার্ক চালাতে পারেন।
প্রোফাইলার কনফিগারেশন নির্বাচন করতে, 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
ফাইল কপি করা হয়। অ্যান্ড্রয়েড স্টুডিওতে CPU প্রোফাইলারে প্রোফাইলিং ফলাফলগুলি পরিদর্শন করতে, ফাইল > খুলুন নির্বাচন করুন। ট্রেস পড়া এবং বোঝার বিষয়ে আরও জানতে, পরিদর্শন ট্রেস দেখুন।
পদ্ধতি ট্রেসিং
আপনি যখন আপনার কোড অপ্টিমাইজ করার চেষ্টা করছেন তখন মেথড ট্রেসিং দরকারী কারণ এটি আপনাকে সেই পদ্ধতিগুলি সনাক্ত করতে সাহায্য করতে পারে যা অন্যদের তুলনায় বেশি সময় নেয়৷ তারপরে আপনি সেই পদ্ধতিগুলিকে অপ্টিমাইজ করার উপর ফোকাস করতে পারেন যা কর্মক্ষমতাতে সবচেয়ে বেশি প্রভাব ফেলে।
কোড পরিমাপের পরে ক্রমানুসারে প্রোফাইলিং ঘটে, তাই আপনার পরীক্ষাটি সঠিক সময় এবং প্রোফাইলিং ফলাফল উভয়ই আউটপুট করে।
স্ট্যাকস্যাম্পলিং
নমুনা ট্রেসিং পদ্ধতি ট্রেসিংয়ের কার্যকারিতা ওভারহেড ছাড়া ব্যয়বহুল পদ্ধতিগুলি সনাক্ত করতেও সহায়তা করতে পারে। যাইহোক, যদি আপনার অ্যাপটি একটি কল স্ট্যাক ক্যাপচার করার পরে একটি পদ্ধতিতে প্রবেশ করে এবং পরবর্তী ক্যাপচারের আগে পদ্ধতিটি প্রস্থান করে, তাহলে পদ্ধতি কলটি লগ করা হয় না। সংক্ষিপ্ত জীবন চক্রের সাথে সঠিকভাবে পদ্ধতিগুলি ট্র্যাক করতে, নমুনা ট্রেসিংয়ের পরিবর্তে পদ্ধতি ট্রেসিং ব্যবহার করুন।
স্ট্যাক স্যাম্পলিংয়ের সাথে, ওয়ার্মআপ সম্পূর্ণ হওয়ার পরে বেঞ্চমার্ক নমুনাগুলি স্ট্যাকগুলিকে কল করে। আপনি ইন্সট্রুমেন্টেশন আর্গুমেন্ট ব্যবহার করে নমুনা ফ্রিকোয়েন্সি এবং নমুনার সময়কাল নিয়ন্ত্রণ করতে পারেন।
Android 10 (API 29) এবং উচ্চতর তে, স্ট্যাক স্যাম্পলিং সি++ কোড সহ অ্যাপ কলস্ট্যাকের নমুনা করতে Simpleperf ব্যবহার করে। অ্যান্ড্রয়েড 9 (এপিআই 28) এবং তার চেয়ে কম সময়ে, এটি স্ট্যাকের নমুনাগুলি ক্যাপচার করতে Debug.startMethodTracingSampling
ব্যবহার করে।
আপনি অন্য ইন্সট্রুমেন্টেশন আর্গুমেন্ট যোগ করে এই প্রোফাইলিং মোড কনফিগার করতে পারেন:
androidx.benchmark.profiling.sampleFrequency
- প্রতি সেকেন্ডে ক্যাপচার করার জন্য স্ট্যাক নমুনার সংখ্যা।
- আর্গুমেন্টের ধরন: পূর্ণসংখ্যা
- প্রতি সেকেন্ডে 1000টি নমুনা ডিফল্ট।
androidx.benchmark.profiling.sampleDurationSeconds
- বেঞ্চমার্ক চালানোর সময়কাল।
- আর্গুমেন্টের ধরন: পূর্ণসংখ্যা
- ডিফল্ট 5 সেকেন্ড।
কোনোটিই নয়
এই যুক্তি একটি প্রোফাইলিং ফাইল ক্যাপচার না. সময় এবং বরাদ্দ সম্পর্কে তথ্য এখনও পরিমাপ করা হয়.
{% শব্দার্থে %}আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়
- মাইক্রোবেঞ্চমার্ক ইনস্ট্রুমেন্টেশন আর্গুমেন্ট
- ক্রমাগত ইন্টিগ্রেশনে বেঞ্চমার্ক চালান