বেঞ্চমার্কিং হল আপনার অ্যাপের কর্মক্ষমতা পরিদর্শন এবং নিরীক্ষণের একটি উপায়। আপনি নিয়মিতভাবে কর্মক্ষমতা সমস্যা বিশ্লেষণ এবং ডিবাগ করার জন্য বেঞ্চমার্ক চালাতে পারেন এবং সাম্প্রতিক পরিবর্তনগুলিতে যাতে আপনি রিগ্রেশন না আনেন তা নিশ্চিত করতে সহায়তা করতে পারেন।
আপনার অ্যাপে বিভিন্ন ধরণের পরিস্থিতি বিশ্লেষণ এবং পরীক্ষা করার জন্য অ্যান্ড্রয়েড দুটি বেঞ্চমার্কিং লাইব্রেরি এবং পদ্ধতি অফার করে: ম্যাক্রোবেঞ্চমার্ক এবং মাইক্রোবেঞ্চমার্ক।
ম্যাক্রোবেঞ্চমার্ক
ম্যাক্রোবেঞ্চমার্ক লাইব্রেরি বৃহত্তর এন্ড-ইউজার ইন্টারঅ্যাকশন পরিমাপ করে, যেমন স্টার্টআপ, UI এর সাথে ইন্টারঅ্যাক্ট করা এবং অ্যানিমেশন। লাইব্রেরিটি আপনার পরীক্ষা করা পারফরম্যান্স পরিবেশের উপর সরাসরি নিয়ন্ত্রণ প্রদান করে। এটি আপনাকে কম্পাইলিং নিয়ন্ত্রণ করতে দেয় এবং আপনার অ্যাপ শুরু এবং বন্ধ করতে দেয় যাতে আপনি সরাসরি অ্যাপ স্টার্টআপ বা স্ক্রলিং পরিমাপ করতে পারেন।
ম্যাক্রোবেঞ্চমার্ক লাইব্রেরি আপনার পরীক্ষাগুলি দিয়ে তৈরি একটি পরীক্ষামূলক অ্যাপ থেকে ইভেন্টগুলি ইনজেক্ট করে এবং ফলাফলগুলি বাহ্যিকভাবে পর্যবেক্ষণ করে। অতএব, বেঞ্চমার্ক লেখার সময়, আপনি সরাসরি আপনার অ্যাপ কোডটি কল করবেন না এবং পরিবর্তে একজন ব্যবহারকারী হিসাবে আপনার অ্যাপের মধ্যে নেভিগেট করবেন।
মাইক্রোবেঞ্চমার্ক
মাইক্রোবেঞ্চমার্ক লাইব্রেরি আপনাকে সরাসরি একটি লুপে অ্যাপ কোড বেঞ্চমার্ক করতে দেয়। এটি CPU-র কাজ পরিমাপ করার জন্য ডিজাইন করা হয়েছে যা সেরা-কেস কর্মক্ষমতা মূল্যায়ন করে—যেমন ওয়ার্ম আপ জাস্ট ইন টাইম (JIT) এবং ডিস্ক অ্যাক্সেস ক্যাশে—যা আপনি একটি ইনার-লুপ বা একটি নির্দিষ্ট হট ফাংশন দিয়ে দেখতে পারেন। লাইব্রেরি কেবলমাত্র সেই কোডটি পরিমাপ করতে পারে যা আপনি সরাসরি বিচ্ছিন্নভাবে কল করতে পারেন।
যদি আপনার অ্যাপের জটিল ডেটা স্ট্রাকচার প্রক্রিয়া করার প্রয়োজন হয়, অথবা অ্যাপ রান করার সময় একাধিকবার কল করা হয় এমন কিছু নির্দিষ্ট গণনা-ভারী অ্যালগরিদম থাকে, তাহলে বেঞ্চমার্কিংয়ের জন্য এগুলো ভালো কেস হতে পারে। আপনি আপনার UI এর কিছু অংশও পরিমাপ করতে পারেন। উদাহরণস্বরূপ, আপনি RecyclerView আইটেম বাইন্ডিংয়ের খরচ, একটি লেআউটকে স্ফীত করতে কত সময় লাগে, অথবা পারফরম্যান্সের দৃষ্টিকোণ থেকে আপনার View ক্লাসের লেআউট-এন্ড-মেজার পাস কতটা কঠিন তা পরিমাপ করতে পারেন।
তবে, আপনি পরিমাপ করতে পারবেন না যে বেঞ্চমার্ক করা কেসগুলি সামগ্রিক ব্যবহারকারীর অভিজ্ঞতায় কীভাবে অবদান রাখে। কিছু পরিস্থিতিতে, বেঞ্চমার্কিং আপনাকে বলে না যে আপনি jank বা অ্যাপ স্টার্টআপ সময়ের মতো কোনও বাধা উন্নত করছেন কিনা। এই কারণে, Android Profiler ব্যবহার করে প্রথমে সেই বাধাগুলি চিহ্নিত করা অত্যন্ত গুরুত্বপূর্ণ। আপনি যে কোডটি অনুসন্ধান এবং অপ্টিমাইজ করতে চান তা খুঁজে পাওয়ার পরে, বেঞ্চমার্ক করা লুপটি দ্রুত এবং সহজে বারবার চলতে পারে যাতে কম শব্দযুক্ত ফলাফল তৈরি হয়, যা আপনাকে উন্নতির একটি ক্ষেত্রের উপর ফোকাস করতে দেয়।
মাইক্রোবেঞ্চমার্ক লাইব্রেরি শুধুমাত্র আপনার অ্যাপ সম্পর্কে তথ্য রিপোর্ট করে, সামগ্রিক সিস্টেম সম্পর্কে নয়। অতএব, অ্যাপের নির্দিষ্ট পরিস্থিতির পারফরম্যান্স বিশ্লেষণ করা সবচেয়ে ভালো, সামগ্রিক সিস্টেম সমস্যার সাথে সম্পর্কিত পরিস্থিতি নয়।
বেঞ্চমার্ক লাইব্রেরি তুলনা
| ম্যাক্রোবেঞ্চমার্ক | মাইক্রোবেঞ্চমার্ক | |
|---|---|---|
| এপিআই সংস্করণ | ২৩ এবং তার পরে | ১৪ এবং তার পরে |
| ফাংশন | উচ্চ-স্তরের এন্ট্রি পয়েন্ট বা ইন্টারঅ্যাকশন পরিমাপ করুন, যেমন অ্যাক্টিভিটি লঞ্চ করা বা তালিকা স্ক্রোল করা। | পৃথক ফাংশন পরিমাপ করুন। |
| ব্যাপ্তি | সম্পূর্ণ অ্যাপের প্রক্রিয়াধীন পরীক্ষা। | CPU কাজের প্রক্রিয়াধীন পরীক্ষা। |
| গতি | মাঝারি পুনরাবৃত্তির গতি। এটি এক মিনিটেরও বেশি হতে পারে। | দ্রুত পুনরাবৃত্তির গতি। প্রায়শই ১০ সেকেন্ডেরও কম। |
| ট্রেসিং | ফলাফল প্রোফাইলিং ট্রেস সহ আসে। | ঐচ্ছিক পদ্ধতির নমুনা সংগ্রহ এবং ট্রেসিং। |
আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলে লিঙ্ক টেক্সট প্রদর্শিত হয়।
- বেসলাইন প্রোফাইল তৈরি করুন {:#creating-profile-rules}
- জ্যাঙ্কস্ট্যাটস লাইব্রেরি
- অ্যাপের কর্মক্ষমতা পরিমাপের সারসংক্ষেপ