সিম্পলপারফ

অ্যান্ড্রয়েড স্টুডিওতে সিম্পলপারফের একটি গ্রাফিকাল ফ্রন্ট এন্ড রয়েছে, যা CPU প্রোফাইলারের সাথে CPU কার্যকলাপ পরিদর্শনে নথিভুক্ত। বেশিরভাগ ব্যবহারকারী সরাসরি Simpleperf ব্যবহার করার পরিবর্তে এটি ব্যবহার করতে পছন্দ করবেন।

আপনি যদি কমান্ড লাইন ব্যবহার করতে পছন্দ করেন, Simpleperf হল একটি বহুমুখী কমান্ড-লাইন CPU প্রোফাইলিং টুল যা Mac, Linux এবং Windows-এর জন্য NDK-এ অন্তর্ভুক্ত।

সম্পূর্ণ ডকুমেন্টেশনের জন্য, Simpleperf README দিয়ে শুরু করুন।

সহজ টিপস এবং রেসিপি

আপনি যদি শুধু Simpleperf দিয়ে শুরু করেন, তাহলে এখানে কিছু কমান্ড রয়েছে যা আপনি বিশেষভাবে দরকারী বলে মনে করতে পারেন। আরো কমান্ড এবং বিকল্পের জন্য, Simpleperf কমান্ড এবং বিকল্প রেফারেন্স দেখুন।

কোন ভাগ করা লাইব্রেরিগুলি কার্যকর করতে সবচেয়ে বেশি সময় নেয় তা খুঁজুন

আপনি এই কমান্ডটি চালাতে পারেন যে কোন .so ফাইলগুলি কার্যকর করার সময় সবচেয়ে বেশি শতাংশ নেয় (CPU চক্রের সংখ্যার উপর ভিত্তি করে)। আপনার কর্মক্ষমতা বিশ্লেষণ সেশন শুরু করার সময় এটি চালানোর জন্য একটি ভাল প্রথম কমান্ড।

$ simpleperf report --sort dso

কোন ফাংশনগুলি কার্যকর করতে সবচেয়ে বেশি সময় নেয় তা খুঁজুন

একবার আপনি শনাক্ত করেছেন যে কোন শেয়ার্ড লাইব্রেরিটি এক্সিকিউশনের বেশিরভাগ সময় নেয়, আপনি সেই .so ফাইলের ফাংশনগুলি কার্যকর করতে কত শতাংশ সময় ব্যয় করেছেন তা দেখতে এই কমান্ডটি চালাতে পারেন।

$ simpleperf report --dsos library.so --sort symbol

থ্রেডে কাটানো সময়ের শতাংশ খুঁজুন

একটি .so ফাইলে এক্সিকিউশন সময় একাধিক থ্রেড জুড়ে বিভক্ত করা যেতে পারে। আপনি প্রতিটি থ্রেডে ব্যয় করা সময়ের শতাংশ দেখতে এই কমান্ডটি চালাতে পারেন।

$ simpleperf report --sort tid,comm

অবজেক্ট মডিউলগুলিতে ব্যয় করা সময়ের শতাংশ খুঁজুন

থ্রেডগুলি খুঁজে পাওয়ার পরে যেখানে বেশিরভাগ এক্সিকিউশন সময় ব্যয় করা হয়, আপনি এই থ্রেডগুলিতে দীর্ঘতম কার্যকর করার সময় নেওয়া অবজেক্ট মডিউলগুলিকে আলাদা করতে এই কমান্ডটি ব্যবহার করতে পারেন।

$ simpleperf report --tids threadID --sort dso

ফাংশন কলগুলি কীভাবে সম্পর্কিত তা দেখুন

একটি কল গ্রাফ একটি স্ট্যাক ট্রেসের একটি ভিজ্যুয়াল উপস্থাপনা প্রদান করে যা Simpleperf প্রোফাইলিং সেশনের সময় রেকর্ড করে।

অন্যান্য ফাংশন দ্বারা কি ফাংশন বলা হয় তা দেখতে আপনি একটি কল গ্রাফ প্রিন্ট করতে report -g কমান্ড ব্যবহার করতে পারেন। এটি একটি ফাংশন নিজেই ধীর কিনা তা নির্ধারণ করতে দরকারী, বা এটি একটি বা একাধিক ফাংশন কল করার কারণে এটি ধীর গতির।

$ simpleperf report -g

ফাংশন প্রদর্শন করে এমন একটি ইন্টারেক্টিভ টুল শুরু করতে আপনি পাইথন স্ক্রিপ্ট report.py -g ব্যবহার করতে পারেন। আপনি প্রতিটি ফাংশনে ক্লিক করে দেখতে পারেন যে তার বাচ্চাদের কতটা সময় ব্যয় করা হয়।

ইউনিটি দিয়ে তৈরি প্রোফাইলিং অ্যাপ

আপনি যদি ইউনিটি দিয়ে তৈরি একটি অ্যাপ প্রোফাইল করছেন, তাহলে এই পদক্ষেপগুলি অনুসরণ করে ডিবাগ প্রতীক সহ অ্যাপটি তৈরি করা নিশ্চিত করুন:

  1. ইউনিটি এডিটরে আপনার অ্যান্ড্রয়েড প্রোজেক্ট খুলুন।
  2. অ্যান্ড্রয়েড প্ল্যাটফর্মের জন্য বিল্ড সেটিংস উইন্ডোতে, ডেভেলপমেন্ট বিল্ড বিকল্পটি চেক করা আছে তা নিশ্চিত করুন।
  3. প্লেয়ার সেটিংস- এ ক্লিক করুন এবং স্ট্রিপিং লেভেল প্রপার্টি নিষ্ক্রিয় -এ সেট করুন।