Traceview-এর মাধ্যমে ট্রেস লগ পরীক্ষা করুন

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

Debug ক্লাস ব্যবহার করে আপনার অ্যাপ ইন্সট্রুমেন্ট করার মাধ্যমে রেকর্ড করা ট্রেস লগ দেখার প্রয়োজন না হলে, আপনি Android Studio 3.0 এবং তার পরবর্তী ভার্সনে অন্তর্ভুক্ত CPU profiler ব্যবহার করতে পারেন, যাতে আপনার অ্যাপের থ্রেড এবং রেকর্ড মেথড ট্রেস পরীক্ষা করতে পারেন।

Traceview ব্যবহার করে ট্রেস লগ খুলুন

Android Studio থেকে Traceview-এর মাধ্যমে ট্রেস লগ খুলতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. Android ডিভাইস মনিটর চালু করুন।
  2. Android ডিভাইস মনিটরে, ফাইল > ফাইল খুলুন বিকল্প বেছে নিন।
  3. আপনি যে .trace ফাইলটি পরীক্ষা করতে চান সেটিতে নেভিগেট করুন।
  4. খুলুন বিকল্পে ক্লিক করুন।

Traceview ওভারভিউ

ট্রেস লগ খোলার পরে, Traceview নিম্নলিখিত দুটি প্যানেল ব্যবহার করে লগ ডেটা দেখায়:

  • একটি টাইমলাইন প্যানেল যা প্রতিটি থ্রেড কখন একটি পদ্ধতিতে প্রবেশ করে এবং প্রস্থান করে তা বর্ণনা করে
  • একটি প্রোফাইল প্যানেল যা ট্রেস লগের সময়কালে প্রতিটি থ্রেডের এক্সিকিউশনের সারসংক্ষেপ করে

নিচের বিভাগগুলি থেকে ট্রেসভিউ আউটপুট প্যান সম্পর্কে অতিরিক্ত তথ্য পাওয়া যায়।

টাইমলাইন প্যানেল

ছবি ১-এ টাইমলাইন পেনের ক্লোজ-আপ দেখানো হয়েছে। প্রতিটি থ্রেডের এক্সিকিউশন তার নিজস্ব সারিতে দেখানো হয়, যার সাথে অতিবাহিত সময় ডানদিকে বৃদ্ধি পায়। প্রতিটি পদ্ধতি আলাদা আলাদা রঙে দেখানো হয়। প্রথম সারির নিচে থাকা সরু লাইনগুলি বেছে নেওয়া পদ্ধতির চিলড্রেন (এন্ট্রি থেকে এক্সিট পর্যন্ত) দেখায়।

Traceview টাইমলাইন প্যানে সময়ের সাথে সাথে থ্রেড এক্সিকিউশন দেখানো হচ্ছে

ছবি ১. Traceview টাইমলাইন প্যান।

প্রোফাইল প্যানেল

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

প্রতিটি পদ্ধতির (টপ-লেভেল নোড) জন্য, সারণীটি নিম্নলিখিত সময় তথ্য (মিলিসেকেন্ডে) এবং মোট সময়ের শতাংশ রিপোর্ট করে:

  • ইনক্লুসিভ ও এক্সক্লুসিভ সময়: এক্সক্লুসিভ সময় হল মেথডের নিজস্ব কোড এক্সিকিউট করতে ব্যয় করা সময়, যেখানে ইনক্লুসিভ সময় হল মেথডের নিজস্ব কোড এক্সিকিউট করতে ব্যয় করা সময় এবং এর চাইল্ড এক্সিকিউট করতে ব্যয় করা সময়।
  • সিপিইউ এবং রিয়েল টাইম: সিপিইউ টাইম শুধুমাত্র সেই সময় বিবেচনা করে যখন থ্রেড সক্রিয়ভাবে সিপিইউ টাইম ব্যবহার করছে এবং রিয়েল টাইম আপনার অ্যাপ কোনও পদ্ধতিতে প্রবেশ করার মুহূর্ত থেকে সেই পদ্ধতি থেকে বেরিয়ে আসা পর্যন্ত সম্পূর্ণ টাইমিং তথ্য প্রদান করে—থ্রেড সক্রিয় বা স্লিপিং যাই হোক না কেন।

প্রোফাইল প্যানে প্রতিটি টপ-লেভেল নোডের জন্য, সারণীতে Calls + Rec, Calls/Total কলাম (চিত্র ২-এ দেখানো হয়নি) মেথডে কলের সংখ্যা এবং রিকার্সিভ কলের সংখ্যা রিপোর্ট করে। অথবা, পেরেন্ট ও চাইল্ড পদ্ধতির জন্য, এই কলামে সেইসব কলের সংখ্যা দেখানো হয় যেখানে পদ্ধতিটি টপ-লেভেল নোডের পদ্ধতির চাইল্ড বা পেরেন্ট ছিল।

Traceview প্রোফাইল প্যানে ইনক্লুসিভ ও এক্সক্লুসিভ মেথড টাইম দেখানো হচ্ছে

ছবি ২. Traceview প্রোফাইল প্যানেল।

Traceview সম্পর্কিত পরিচিত সমস্যা

Traceview লগিং থ্রেড ভালভাবে ম্যানেজ করে না, যার ফলে নিম্নলিখিত সমস্যাগুলি হয়:

  • প্রোফাইলিং চলাকালীন কোনও থ্রেড বন্ধ হয়ে গেলে, থ্রেডের নাম নির্গত হয় না (Android 5.1 এবং পরবর্তী ভার্সনে সমাধান করা হয়েছে);
  • VM থ্রেড আইডি আবার ব্যবহার করে। কোনও থ্রেড বন্ধ হয়ে অন্য একটি শুরু হলে, সেটির একই আইডি থাকতে পারে।