CPU হট স্পট সনাক্ত করতে কলস্ট্যাকগুলি কার্যকর, বা কোডের বিভাগগুলি যেগুলি কার্যকর করতে দীর্ঘ সময় নেয়। কলস্ট্যাক আপনাকে বুঝতে সাহায্য করে যে কোডের কোন অংশটি কার্যকর করা হয়েছে এবং কেন এটি চালু করা হয়েছে।
কলস্ট্যাকের নমুনা ওভারভিউ
কলস্ট্যাকের নমুনা নিতে, অ্যান্ড্রয়েড স্টুডিও প্রোফাইলার হোম ট্যাব থেকে সিপিইউ হটস্পট (কলস্ট্যাকের নমুনা) টাস্ক খুঁজুন । রেকর্ডিং পার্স করার পরে আপনি নিম্নলিখিত ভিজ্যুয়ালগুলি দেখতে পাবেন:
CPU ব্যবহার এবং ইন্টারঅ্যাকশন টাইমলাইন পরিপূরক করতে, থ্রেড বিভাগটি আপনার অ্যাপ এবং সিস্টেমের প্রতিটি কলের জন্য ফ্রেম দেখায়। কলস্ট্যাকের নমুনা নেভিগেট করার জন্য এখানে কিছু টিপস রয়েছে:
- আগ্রহের থ্রেড প্রসারিত করুন এবং স্ট্যাক ফ্রেম নেভিগেট করতে কীবোর্ড শর্টকাট ব্যবহার করুন। বিশ্লেষণ ফলকে ইভেন্ট এবং সম্পর্কিত কল সম্পর্কে বিশদ বিবরণ পেতে একটি স্ট্যাক ফ্রেমে ক্লিক করুন।
- নির্দিষ্ট ধরণের স্ট্যাক ফ্রেমে ফিল্টার করতে, ফ্রেম সঙ্কুচিত করুন ক্লিক করুন এবং আপনি যে ফ্রেমের ধরনগুলি লুকাতে চান তা পরীক্ষা করুন৷ থ্রেড এবং অ্যানালাইসিস উভয় বিভাগ থেকে ফ্রেম ভেঙে ফেলার ফলে সেগুলিকে সরিয়ে দেওয়া হয়। আপনার তদন্তের উপর নির্ভর করে, আপনি জাভা ভার্চুয়াল মেশিন (উদাহরণস্বরূপ
android::AndroidRuntime::start
এবংart::{...}
), এবং সিস্টেম কার্নেল (উদাহরণস্বরূপ[kernel.kallsyms]+{offset}
থেকে ফ্রেমগুলি ভেঙে ফেলতে চাইতে পারেন[kernel.kallsyms]+{offset}
)। সাধারণত এটি[kernel.kallsyms]
,/apex/
, এবং/system/*
এর সাথে সম্পর্কিত ফ্রেম ভেঙে পড়ার সাথে মিলে যায়।
যেহেতু একটি জাভা/কোটলিন প্রোগ্রাম সাধারণত একটি জাভা ভার্চুয়াল মেশিনের মাধ্যমে সঞ্চালিত হয়, যখন অ্যান্ড্রয়েড স্টুডিও একটি জাভা/কোটলিন প্রোগ্রামের জন্য কলস্ট্যাক সংগ্রহ করে, কলস্ট্যাকে সাধারণত শুধুমাত্র জাভা/কোটলিন কোড নয় বরং প্রোগ্রামটি চালানোর জন্য প্রয়োজনীয় নেটিভ কোডও অন্তর্ভুক্ত থাকে এবং প্রোগ্রামটি সিস্টেম এবং হার্ডওয়্যারের সাথে কথা বলার জন্য।
- একটি স্ট্যাক ফ্রেমের সাথে যুক্ত সোর্স কোডে লাফ দিতে, ফ্রেমে ডান-ক্লিক করুন এবং জাম্প টু সোর্সে ক্লিক করুন।
- ইভেন্ট টেবিলে একটি ইভেন্টের সাথে যুক্ত স্ট্যাক ফ্রেম হাইলাইট করতে, ইভেন্টটিতে ক্লিক করুন।
অন্যান্য ভিজ্যুয়াল সম্পর্কে তথ্যের জন্য, একটি সিস্টেম ট্রেস রেকর্ড করুন এবং চার্ট শব্দকোষ দেখুন।
কমান্ড লাইন ব্যবহার করে নমুনা নেটিভ কোড
অভ্যন্তরীণভাবে, অ্যান্ড্রয়েড স্টুডিও আপনার অ্যাপের নেটিভ কোড ট্রেস করতে simpleperf ব্যবহার করে। আপনি যদি Simpleperf-এর জন্য অতিরিক্ত বিকল্পগুলি নির্দিষ্ট করতে চান, যেমন নির্দিষ্ট ডিভাইস CPU-র নমুনা নেওয়া বা উচ্চ নির্ভুলতায় নমুনার সময়কাল নির্দিষ্ট করা, আপনি কমান্ড লাইন থেকে simpleperf ব্যবহার করতে পারেন।