ট্রেসভিউ অপ্রচলিত। আপনি যদি অ্যান্ড্রয়েড স্টুডিও 3.2 বা তার পরের সংস্করণ ব্যবহার করেন, তবে আপনার পরিবর্তে Debug
ক্লাসের মাধ্যমে আপনার অ্যাপের ইনস্ট্রুমেন্টিং দ্বারা ক্যাপচার করা .trace
ফাইলগুলি পরিদর্শন করতে, নতুন পদ্ধতির ট্রেস রেকর্ড করতে, .trace
ফাইলগুলি সংরক্ষণ করতে এবং এর রিয়েল-টাইম CPU ব্যবহার পরিদর্শন করতে আপনার CPU প্রোফাইলার ব্যবহার করা উচিত আপনার অ্যাপের প্রসেস।
ট্রেসভিউ হল একটি টুল যা ট্রেস লগগুলির একটি গ্রাফিক্যাল উপস্থাপনা প্রদান করে। আপনি Debug
ক্লাসের সাথে আপনার কোড যন্ত্রের মাধ্যমে লগগুলি তৈরি করতে পারেন। ট্রেসিংয়ের এই পদ্ধতিটি অত্যন্ত সুনির্দিষ্ট কারণ আপনি যে কোডটিতে আপনি ট্রেস ডেটা লগিং শুরু করতে এবং বন্ধ করতে চান তা ঠিক কোথায় উল্লেখ করতে পারেন৷ আপনি যদি এখনও এই ট্রেস লগগুলি তৈরি না করে থাকেন এবং আপনার সংযুক্ত ডিভাইস থেকে আপনার স্থানীয় মেশিনে সেভ না করে থাকেন, তাহলে আপনার অ্যাপ যন্ত্রের মাধ্যমে ট্রেস লগ তৈরি করুন এ যান৷ ট্রেসভিউ ব্যবহার করে এই লগগুলি পরিদর্শন করা আপনাকে আপনার অ্যাপ ডিবাগ করতে এবং এর কার্যকারিতা প্রোফাইলে সহায়তা করে।
টিপ: আপনি আপনার ট্রেস লগ ফাইলগুলির একটি গ্রাফিক্যাল কল-স্ট্যাক ডায়াগ্রাম তৈরি করতে কমান্ড-লাইন থেকে dmtracedump
ব্যবহার করতে পারেন।
আপনার অ্যাপটিকে Debug
ক্লাসের মাধ্যমে ইনস্ট্রুমেন্ট করে রেকর্ড করা ট্রেস লগগুলি দেখার প্রয়োজন না হলে, আপনি আপনার অ্যাপের থ্রেডগুলি পরিদর্শন করতে এবং পদ্ধতির ট্রেস রেকর্ড করতে Android স্টুডিও 3.0 এবং উচ্চতর সিপিইউ প্রোফাইলার ব্যবহার করতে পারেন।
ট্রেসভিউ ব্যবহার করে একটি ট্রেস লগ খুলুন
অ্যান্ড্রয়েড স্টুডিও থেকে ট্রেসভিউ সহ একটি ট্রেস লগ খুলতে, নিম্নরূপ এগিয়ে যান:
- অ্যান্ড্রয়েড ডিভাইস মনিটর শুরু করুন।
- অ্যান্ড্রয়েড ডিভাইস মনিটরে, ফাইল > ফাইল খুলুন নির্বাচন করুন।
- আপনি যে
.trace
ফাইলটি পরিদর্শন করতে চান সেটিতে নেভিগেট করুন। - খুলুন ক্লিক করুন.
দ্রষ্টব্য: আপনি যদি কোড সঙ্কুচিত করা সক্ষম (যেমন একটি রিলিজ বিল্ড) সহ নির্মিত একটি অ্যাপের ট্রেস লগগুলি দেখার চেষ্টা করেন তবে কিছু পদ্ধতি এবং সদস্যের নামগুলি অস্পষ্ট হতে পারে৷ আপনি মূল অস্পষ্ট নামগুলি বের করতে ProGuard mapping.txt
ফাইলটি ব্যবহার করতে পারেন৷ এই ফাইলটি সম্পর্কে আরও তথ্যের জন্য, একটি অস্পষ্ট স্ট্যাক ট্রেস ডিকোড দেখুন।
দ্রষ্টব্য: কমান্ড লাইন থেকে চলমান traceview
অবরুদ্ধ করা হয়েছে।
ট্রেসভিউ ওভারভিউ
একটি ট্রেস লগ খোলার পরে, ট্রেসভিউ নিম্নলিখিত দুটি প্যান ব্যবহার করে লগ ডেটা প্রদর্শন করে:
- একটি টাইমলাইন ফলক যা বর্ণনা করে যখন প্রতিটি থ্রেড একটি পদ্ধতিতে প্রবেশ করে এবং প্রস্থান করে
- একটি প্রোফাইল ফলক যা ট্রেস লগের সময়কাল ধরে প্রতিটি থ্রেডের সম্পাদনের সংক্ষিপ্ত বিবরণ দেয়
নীচের বিভাগগুলি ট্রেসভিউ আউটপুট প্যান সম্পর্কে অতিরিক্ত তথ্য প্রদান করে।
টাইমলাইন ফলক
চিত্র 1 টাইমলাইন ফলকের একটি ক্লোজ আপ দেখায়। প্রতিটি থ্রেডের এক্সিকিউশন তার নিজস্ব সারিতে দেখানো হয়, অতিবাহিত সময় ডান দিকে বাড়তে থাকে। প্রতিটি পদ্ধতি বিভিন্ন রং দেখানো হয়. প্রথম সারির নীচের পাতলা রেখাগুলি নির্বাচিত পদ্ধতির শিশুদের (প্রবেশ থেকে প্রস্থান পর্যন্ত) দেখায়।
প্রোফাইল ফলক
চিত্র 2-এ যেমন দেখানো হয়েছে, প্রোফাইল ফলক প্রতিটি পদ্ধতির তালিকা প্রদান করে যেগুলি ট্রেস লগের সময়কালে এবং সেই পদ্ধতিগুলি চালানোর জন্য কত সময় ব্যয় করা হয়েছে। একটি পদ্ধতি যা অন্য পদ্ধতিকে কল করে তাকে অভিভাবক হিসাবে উল্লেখ করা হয় এবং পিতামাতা যে পদ্ধতিগুলিকে কল করেন তাকে তার সন্তান হিসাবে উল্লেখ করা হয়। আপনি যখন এটিতে ক্লিক করে একটি পদ্ধতি নির্বাচন করেন, তখন এটি দুটি পৃথক নোডের অধীনে এর পিতামাতা এবং তার সন্তান উভয়কেই প্রদর্শন করে।
প্রতিটি পদ্ধতির জন্য (শীর্ষ-স্তরের নোড), টেবিলটি তার অন্তর্ভুক্তিমূলক এবং একচেটিয়া সময় (মিলিসেকেন্ডে) পাশাপাশি মোট সময়ের শতাংশ উভয়ই দেখায়। একচেটিয়া সময় হল পদ্ধতির নিজস্ব কোড কার্যকর করার সময় ব্যয় করা সময়, যখন অন্তর্ভুক্ত সময় হল পদ্ধতির নিজস্ব কোড কার্যকর করতে ব্যয় করা সময় এবং তার সন্তানদের কার্যকর করার সময় ব্যয় করা হয়। CPU সময় এবং বাস্তব সময়ের পরিপ্রেক্ষিতে সময়ের তথ্যও রিপোর্ট করা হয়। CPU সময় শুধুমাত্র সেই সময়টিকে বিবেচনা করে যে থ্রেডটি সক্রিয়ভাবে CPU সময় ব্যবহার করছে, এবং আপনার অ্যাপটি সেই পদ্ধতিতে প্রবেশ করার মুহূর্ত থেকে রিয়েল টাইম সম্পূর্ণ সময়ের তথ্য প্রদান করে যখন এটি সেই পদ্ধতি থেকে বেরিয়ে আসে - থ্রেডটি সক্রিয় বা ঘুমন্ত কিনা তা নির্বিশেষে।
প্রোফাইল প্যানে প্রতিটি টপ-লেভেল নোডের জন্য, টেবিলে কল + রেক, কল/মোট কলাম (চিত্র 2 এ দেখানো হয়নি) পদ্ধতিতে কলের সংখ্যা এবং পুনরাবৃত্ত কলের সংখ্যা রিপোর্ট করে। অথবা, পিতামাতা এবং শিশু পদ্ধতির জন্য, এই কলামটি দেখায় যে কলের সংখ্যাটি যে পদ্ধতিটি শীর্ষ-স্তরের নোডের একটি শিশু বা অভিভাবক ছিল৷
পরিচিত সমস্যা ট্রেসভিউ
ট্রেসভিউ লগিং থ্রেডগুলিকে ভালভাবে পরিচালনা করে না, যার ফলে নিম্নলিখিত সমস্যাগুলি দেখা দেয়:
- প্রোফাইলিংয়ের সময় যদি একটি থ্রেড প্রস্থান হয়, থ্রেডের নামটি নির্গত হয় না (Android 5.1 এবং পরবর্তীতে স্থির করা হয়েছে);
- VM থ্রেড আইডি পুনরায় ব্যবহার করে। যদি একটি থ্রেড বন্ধ হয়ে যায় এবং অন্যটি শুরু হয়, তারা একই আইডি পেতে পারে।