পারফেটো

perfetto হল একটি টুল যা আপনাকে Android Debug Bridge (ADB) এর মাধ্যমে Android ডিভাইস থেকে পারফরম্যান্স তথ্য সংগ্রহ করতে দেয়। adb shell perfetto ... কমান্ড ব্যবহার করে perfetto টুল চালু করুন। perfetto আপনার ডিভাইস থেকে কর্মক্ষমতা ট্রেস সংগ্রহ করতে বিভিন্ন উত্স ব্যবহার করে, যেমন:

  • কার্নেল থেকে তথ্যের জন্য ftrace
  • পরিষেবা এবং অ্যাপে ব্যবহারকারী-স্থান টীকা জন্য atrace
  • পরিষেবা এবং অ্যাপের নেটিভ মেমরি ব্যবহারের তথ্যের জন্য heapprofd

এই পৃষ্ঠাটি বর্ণনা করে কিভাবে perfetto কল করতে হয় এবং পছন্দসই আউটপুট তৈরি করতে কনফিগার করতে হয়। আরও তথ্যের জন্য, perfetto ডকুমেন্টেশন পড়ুন।

বাক্য গঠন

এই বিভাগটি বর্ণনা করে যে কিভাবে ADB ব্যবহার করে বিভিন্ন মোডের জন্য perfetto কল করতে হয় এবং একটি ট্রেস তৈরি করতে হয়।

ডেটা উৎস নির্বাচন

perfetto নিম্নলিখিত দুটি মোড রয়েছে যা আপনার ট্রেস রেকর্ড করতে ব্যবহার করে ডেটা উত্স নির্ধারণ করে:

  • লাইট মোড : ডেটা উত্সের শুধুমাত্র একটি উপসেট নির্বাচন করতে পারে, বিশেষত atrace এবং ftrace । যাইহোক, এই মোডটি systrace এর মত একটি ইন্টারফেস প্রদান করে।
  • স্বাভাবিক মোড : একটি প্রোটোকল বাফারে এর কনফিগারেশন পায় এবং আপনাকে atrace এবং ftrace থেকে আলাদা ডেটা উত্স ব্যবহার করে perfetto কার্যকারিতা আরও বেশি লাভ করতে দেয়।

সাধারণ বিকল্পসমূহ

উভয় মোডে perfetto ব্যবহার করার সময় নিম্নলিখিত সারণী উপলব্ধ বিকল্পগুলি তালিকাভুক্ত করে:

সারণি 1. উপলব্ধ সাধারণ পারফেটো টুল বিকল্পের তালিকা।

অপশন বর্ণনা
--background |
-d
perfetto অবিলম্বে কমান্ড-লাইন ইন্টারফেস থেকে প্রস্থান করে এবং পটভূমিতে আপনার ট্রেস রেকর্ড করা চালিয়ে যায়।
--background-wait | -D --background মত, কিন্তু প্রস্থান করার আগে সমস্ত ডেটা উৎসের জন্য অপেক্ষা করে (30s পর্যন্ত)। একটি সফল স্বীকৃতি প্রাপ্ত হলে প্রস্থান কোড শূন্য এবং অন্যথায় শূন্য নয় (ত্রুটি বা সময় শেষ)।
--alert-id সতর্কতার আইডি যা এই ট্রেসটি ট্রিগার করেছে৷
--config-id ট্রিগারিং কনফিগারেশনের আইডি।
--config-uid কনফিগারেশন নিবন্ধিত অ্যাপের UID।
--subscription-id সদস্যতার আইডি যা এই ট্রেসটি ট্রিগার করেছে৷
--out OUT_FILE |
-o OUT_FILE

আউটপুট ট্রেস ফাইল বা - stdout এর জন্য পছন্দসই পথ নির্দিষ্ট করে। perfetto পূর্ববর্তী ফ্ল্যাগে বর্ণিত ফাইলে আউটপুট লেখে। আউটপুট বিন্যাস AOSP trace.proto তে সংজ্ঞায়িত বিন্যাসের সাথে কম্পাইল করে।

দ্রষ্টব্য: আপনাকে অবশ্যই আউটপুট ফাইলের সম্পূর্ণ পাথনাম উল্লেখ করতে হবে। সাধারণত ফাইলগুলি /data/misc/perfetto-traces ফোল্ডারে লেখা উচিত।

--upload সম্পূর্ণ হলে, প্রোটো ট্রেস কনফিগারেশনে IncidentReportConfig বার্তা দ্বারা নির্দিষ্ট প্যাকেজে ট্রেস পাস করে।
--no-guardrails পরীক্ষার সময় --upload পতাকা সক্ষম করার সময় অত্যধিক সম্পদ ব্যবহারের বিরুদ্ধে সুরক্ষা নিষ্ক্রিয় করে।
--reset-guardrails গার্ডেলের স্থায়ী অবস্থা পুনরায় সেট করে এবং পরীক্ষার জন্য প্রস্থান করে।
--rsave-for-bugreport bugreport_score > 0 সহ একটি ট্রেস চলমান থাকলে, একটি ফাইলে ট্রেস সংরক্ষণ করে। সম্পন্ন হলে পাথ আউটপুট করে।
--query পরিষেবার অবস্থা জিজ্ঞাসা করে এবং এটি মানব-পাঠযোগ্য পাঠ্য হিসাবে মুদ্রণ করে।
--query-raw --query এর মতো, কিন্তু tracing_service_state.proto.
--help | -h perfetto টুলের জন্য সাহায্য পাঠ্য প্রিন্ট করে।

হালকা মোড

হালকা মোডে perfetto ব্যবহার করার জন্য সাধারণ সিনট্যাক্স নিম্নরূপ:

 adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
             [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
             --out FILE

হালকা মোডে perfetto ব্যবহার করার সময় নিম্নলিখিত সারণী উপলব্ধ বিকল্পগুলি তালিকাভুক্ত করে:

সারণি 2. হালকা মোড ব্যবহার করার সময় উপলব্ধ perfetto টুল বিকল্পের তালিকা।

অপশন বর্ণনা
--time TIME [s|m|h] |
-t TIME [s|m|h]
সেকেন্ড, মিনিট বা ঘন্টার মধ্যে ট্রেস সময়কাল নির্দিষ্ট করে। উদাহরণস্বরূপ, --time 1m 1 মিনিটের একটি ট্রেস সময়কাল নির্দিষ্ট করে৷ ডিফল্ট সময়কাল 10 সেকেন্ড।
--buffer SIZE [mb|gb] |
-b SIZE [mb|gb]
মেগাবাইট (mb) বা গিগাবাইট (gb) এ রিং বাফারের আকার নির্দিষ্ট করে। ডিফল্ট প্যারামিটার হল --buffer 32mb
--size SIZE [mb|gb] |
-s SIZE [mb|gb]
মেগাবাইট (mb) বা গিগাবাইটে (gb) সর্বোচ্চ ফাইলের আকার নির্দিষ্ট করে। ডিফল্টরূপে, perfetto শুধুমাত্র ইন-মেমরি রিং-বাফার ব্যবহার করে।
--app | -a অ্যান্ড্রয়েড (অ্যাট্রেস) অ্যাপের নাম

এই বিকল্পগুলি ইভেন্ট স্পেসিফায়ারগুলির একটি তালিকা দ্বারা অনুসরণ করা হয়:

সারণি 3. লাইট মোডের জন্য ইভেন্ট স্পেসিফায়ারের তালিকা।

ঘটনা বর্ণনা
ATRACE_CAT আপনি যে atrace বিভাগগুলির জন্য একটি ট্রেস রেকর্ড করতে চান তা নির্দিষ্ট করে৷ উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি atrace ব্যবহার করে উইন্ডো ম্যানেজারকে চিহ্নিত করে:
    adb shell perfetto --out FILE wm
    

অন্যান্য বিভাগ রেকর্ড করতে, atrace বিভাগের এই তালিকাটি দেখুন।

FTRACE_GROUP/FTRACE_NAME আপনি যে ftrace ইভেন্টগুলির জন্য একটি ট্রেস রেকর্ড করতে চান তা নির্দিষ্ট করে৷ উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি sched/sched_switch ইভেন্টগুলি চিহ্নিত করে:
      adb shell perfetto --out FILE sched/sched_switch
      

স্বাভাবিক অবস্থা

সাধারণ মোডে perfetto ব্যবহার করার জন্য সাধারণ সিনট্যাক্স নিম্নরূপ:

 adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE

সাধারণ মোডে perfetto ব্যবহার করার সময় নিম্নলিখিত সারণী উপলব্ধ বিকল্পগুলি তালিকাভুক্ত করে:

সারণি 4. সাধারণ মোড ব্যবহার করার সময় উপলব্ধ perfetto টুল বিকল্পের তালিকা।

অপশন বর্ণনা
--config CONFIG_FILE | -c CONFIG_FILE একটি কনফিগারেশন ফাইলের পথ নির্দিষ্ট করে। সাধারণ মোডে, কিছু কনফিগারেশন একটি কনফিগারেশন প্রোটোকল বাফারে এনকোড করা হতে পারে। এই ফাইলটিকে অবশ্যই AOSP trace_config.proto এ সংজ্ঞায়িত প্রোটোকল বাফার স্কিমা মেনে চলতে হবে।

AOSP data_source_config.proto তে সংজ্ঞায়িত TraceConfig এর DataSourceConfig সদস্য ব্যবহার করে ডেটা উৎস নির্বাচন এবং কনফিগার করুন।

--txt কনফিগার ফাইলটিকে pbtxt হিসাবে পার্স করার জন্য perfetto নির্দেশ দেয়। এই পতাকা শুধুমাত্র স্থানীয় পরীক্ষার জন্য উদ্দিষ্ট, এবং এটা সুপারিশ করা হয় না যে আপনি এটি উৎপাদনের জন্য সক্ষম করুন৷

সমর্থিত তথ্য উত্স

এই বিভাগটি বিভিন্ন উত্স বর্ণনা করে যা perfetto আপনার ট্রেস তৈরি করতে ব্যবহার করে।

ftrace

ftrace ডেটা সোর্স perfetto কার্নেল থেকে ইভেন্ট পেতে অনুমতি দেয়।

DataSourceConfig-এ ftrace_config সেট করে এই উৎসটি সক্ষম করুন।

যে ইভেন্টগুলি সক্ষম করা যেতে পারে সেগুলির মধ্যে রয়েছে:

আপনার ডিভাইস, OS সংস্করণ বা কার্নেলের উপর নির্ভর করে, আরও ইভেন্ট উপলব্ধ হতে পারে। আরও তথ্যের জন্য, কনফিগার প্রোটোগুলি পড়ুন।

প্রক্রিয়া পরিসংখ্যান

প্রক্রিয়া পরিসংখ্যান ডেটা উত্স আপনাকে সিস্টেম এবং পৃথক প্রক্রিয়া সম্পর্কে পোল কাউন্টার পেতে অনুমতি দেয়।

DataSourceConfig-এ process_stats_config এবং sys_stats_config সেট করে এই উৎসটি সক্ষম করুন।

perfetto যে ডেটা তৈরি করে তার মধ্যে রয়েছে:

আপনার ডিভাইস, OS সংস্করণ এবং কার্নেলের উপর নির্ভর করে, আরও ইভেন্ট উপলব্ধ হতে পারে। আরও জানতে, sys_stats এবং process_stats এর জন্য কনফিগার প্রোটোগুলি পড়ুন।

heapprofd

heapprofd আপনাকে নেটিভ মেমরি ব্যবহারের কারণের নমুনা দিতে দেয়।

DataSourceConfig-এ heapprofd_config সেট করে এই উৎসটি সক্ষম করুন। এই সেটিং কলস্ট্যাকের জাভা ফ্রেম সহ ProfilePackets তৈরি করে।

heapprofd কিভাবে ব্যবহার করবেন সে সম্পর্কে অতিরিক্ত তথ্য perfetto.dev এ পাওয়া যাবে।

অন্যান্য উত্স

আপনার ডিভাইস, OS সংস্করণ এবং কার্নেলের উপর নির্ভর করে, আরও ডেটা উত্স উপলব্ধ হতে পারে। আরও জানতে, ডেটা উত্স কনফিগার প্রোটোগুলি পড়ুন।

perfetto সম্পর্কে অতিরিক্ত তথ্য perfetto.dev এ পাওয়া যাবে।