Zomato হল একটি ভারতীয় বহুজাতিক রেস্তোরাঁ এবং খাদ্য সরবরাহকারী সংস্থা যা শুধুমাত্র ভারতের 500টি শহরে গ্রাহকদের পরিষেবা প্রদান করে। 43M+ সক্রিয় গ্রাহক এবং দিনে 1.5M+ গড় অর্ডার সহ, এটি দেশের অন্যতম জনপ্রিয় খাদ্য অর্ডারিং এবং ডেলিভারি পরিষেবা। এর মানে হল গ্রাহকরা বিভিন্ন ধরনের ডিভাইস ব্যবহার করেন এবং তাদের নেটওয়ার্কের উপলব্ধতা আলাদা। দ্রুত ডেলিভারির পাশাপাশি, এটি অ্যাপে একটি মসৃণ এবং নিরবচ্ছিন্ন অভিজ্ঞতাও অপরিহার্য করে তোলে।
ব্যবহারকারীরা দ্রুত অ্যাপ খোলার সময় এবং প্রতিক্রিয়াশীলতা আশা করে। এই মেট্রিকটি উন্নত করা শুধুমাত্র অ্যাপ ভাইটালকে সরাসরি প্রভাবিত করে না, বরং আরও অর্ডার সম্পূর্ণতা নিশ্চিত করে এবং Zomato-এর কৌশলকে সমর্থন করে - নতুন বাজারে বিস্তৃত করা এবং কম থেকে মধ্য-পরিসরের ডিভাইসগুলিতে একটি ভাল অভিজ্ঞতা সক্ষম করে৷ এটি শেষ পর্যন্ত তাদের পরবর্তী বিলিয়ন ব্যবহারকারীদের ক্যাপচার করতে সহায়তা করে৷ অ্যাপ খোলার সময়গুলি একটি বর্ধিত ফানেলের আকারের জন্য একটি ভবিষ্যদ্বাণী হিসাবে কাজ করে কারণ তাদের ব্যবহারকারীরা বিক্রয় ফানেলের আরও নীচে ভ্রমণ করে।
এবং Zomato App Vitals-এ ফোকাস করে কিছু চিত্তাকর্ষক লাভ পেয়েছে। যেমন, অ্যাপ লোডিং টাইম 30% গতি বাড়িয়ে দিন 1 গ্রাহক ধরে রাখার ক্ষেত্রে প্রায় 90% উন্নতি হয়েছে!
চ্যালেঞ্জ
Zomato এর বিকাশের দ্রুত গতি এবং বৈশিষ্ট্য সংযোজনে ফোকাস, যদিও গ্রাহকদের জন্য দুর্দান্ত, ফলে তাদের কোডবেস এবং UX অপ্টিমাইজ করার প্রয়োজন হয়েছে। নতুন বৈশিষ্ট্য যোগ করার চেষ্টা করার সময়, Zomato তাদের কর্মক্ষমতা সমান রাখতে চেয়েছিল। একাধিক SDK ব্যবহারকারী সংস্থানগুলির সাথে যা সর্বদা প্রয়োজন ছিল না, কোডবেসকে স্ট্রীমলাইন এবং যুক্তিযুক্ত করার প্রয়োজন ছিল।
এই সবই ভারতে টায়ার 2 এবং টায়ার 3 শহরে Zomato এর সম্প্রসারণের দ্বারা প্রভাবিত হয়েছিল, যেখানে লোকেরা তুলনামূলকভাবে সীমিত প্রক্রিয়াকরণ ক্ষমতা সহ নিম্ন থেকে মধ্য স্তরের ডিভাইসগুলি ব্যবহার করে। এই ডিভাইসগুলির অন্তর্ভুক্তির সাথে দলটিকে উচ্চ স্তরের ডিভাইসগুলির মতো একই বিশ্বমানের ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করতে হয়েছিল।
তারা কী করেছিলো?
Zomato তাদের ওভারহেডগুলি বিশ্লেষণ করার জন্য একটি সাধারণ রুব্রিক ব্যবহার করেছে - কোন সমাধানটি উন্নয়ন দলের প্রচেষ্টা বনাম বিনিয়োগে সেরা রিটার্ন দিতে পারে। এই রুব্রিক ব্যবহার করে, দলটি 4 মাসের দীর্ঘ অপ্টিমাইজেশন এবং উন্নতির যাত্রা শুরু করেছে।
প্রথম পদক্ষেপটি ছিল সমস্যাগুলি, সময়-ভিত্তিক বিশ্লেষণ এবং তদনুসারে অগ্রাধিকার দেওয়ার জন্য সিস্টেম ট্রেসগুলি সন্ধান করা। পারফেটো হল অ্যান্ড্রয়েড প্রক্রিয়া বিশ্লেষণ, প্রোফাইল এবং ট্রেস করার নিখুঁত টুল। Zomato অ্যাপ স্টার্টআপের সময় আরম্ভ করা সমস্ত SDK ট্রেস করতে এবং অলসভাবে সরানো বা লোড করা যেতে পারে সেগুলি নির্দেশ করতে টুলটি ব্যবহার করেছে।
লিগ্যাসি SDK এবং অব্যবহৃত 3P লাইব্রেরিগুলি সরানো ছিল শীর্ষ অগ্রাধিকার কারণ এটি একটি কম-প্রচেষ্টা, উচ্চ-লাভের কাজ। এই পদ্ধতি Zomatoকে অ্যাপ শুরুর সময় মূল্যবান 20% বাঁচাতে সাহায্য করেছে।
অনেক থার্ড-পার্টি লাইব্রেরি অ্যাপ স্টার্ট শুরু করার জন্য কন্টেন্ট প্রদানকারীদের ব্যবহার করে, যা অ্যাপ শুরুর সময়কে প্রভাবিত করে। Zomato লগইন করার জন্য Facebook SDK ব্যবহার করে, কিন্তু ব্যবহারকারীর কাছে অন্যান্য লগইন বিকল্পও রয়েছে, তাই স্টার্টআপে SDK শুরু করা অদক্ষ। অ্যাপ স্টার্টআপ লাইব্রেরির প্রবর্তনের সাথে, Zomato শুধুমাত্র SDK লোড করবে যদি ব্যবহারকারী Facebook লগইন বিকল্পে যান। এটি তাদের স্টার্টআপের সময় ~ 6% কমাতে সাহায্য করেছে!
পরবর্তী পদক্ষেপটি ছিল ভিউগুলির মূল্যস্ফীতির সময়কে উন্নত করা কারণ ভিউয়ের রেন্ডারিং এবং স্ফীতি Zomato-এর মতো একটি জটিল UI কাঠামোতে উল্লেখযোগ্য সময় নিতে পারে। ভিউস্টাব কার্যকারিতা বাড়াতে সাহায্য করে কারণ এটি ভিউ তৈরি করতে দেয় কিন্তু প্রয়োজন না হলে ভিউ হায়ারার্কিতে যোগ করা হয় না। ভিউস্টাবগুলি ভিউ ব্যবহার করার চেয়ে বেশি দক্ষ। ভিউটি GONE অবস্থায় থাকলেও, এটি স্ফীত হবে এবং মেমরি এবং CPU ব্যবহার খেয়ে ফেলবে। Zomato তাদের ভিউ হায়ারার্কি সমতল করেছে এবং তাদের লগইন কার্যকলাপে ভিউস্টাব সহ লেআউট একত্রিত করেছে। এই পরিবর্তনগুলি মূল্যস্ফীতির সময়কে 7% দ্বারা উল্লেখযোগ্যভাবে উন্নত করেছে।
অ্যান্ড্রয়েড প্রোফাইলার মেমরি ব্যবহার অপ্টিমাইজ করতে সাহায্য করেছে, কারণ এটি রিয়েল-টাইমে CPU কার্যকলাপ, মেমরি এবং নেটওয়ার্ক ট্র্যাক করার অনুমতি দেয়। প্রোফাইলার তাদের লকিং পরিস্থিতি এবং মেমরি ওভারহেডগুলির জন্য মূল সমস্যা সনাক্ত করতে এবং সেই অনুযায়ী এটি ঠিক করতে সক্ষম করে। Zomato তাদের ক্যাশিং পদ্ধতিতেও কাজ করেছে যাতে মেমরির সমস্যায় 60% এর বিশাল ড্রপ পাওয়া যায়।
কর্ম | আগে (সেকেন্ড) | পরে (সেকেন্ড) | উন্নতি |
---|---|---|---|
সরানো হয়েছে উত্তরাধিকারী SDK, অব্যবহৃত 3P লাইব্রেরি | 4.873 | 3.813 | 21.74% |
অলস লোডিং লাইব্রেরি | 3.814 | 3.577 | 6.2% |
বিন্যাসের উন্নতি, ভিউস্টাব | 2.529 | 2.348 | 7.15% |
অ্যাপ শুরুর সময় = অ্যাপ আরম্ভ করা + লাইব্রেরি লোডের সময় + মুদ্রাস্ফীতির সময় দেখুন
ফলাফল
Zomato এর পারফরম্যান্স লাভ তাদের অনেক মসৃণ অভিজ্ঞতা তৈরি করতে সাহায্য করেছে। আরও UI উন্নতি এবং ক্যাশিং, জ্যাঙ্কিংও কমিয়েছে।
![](https://developer.android.com/static/images/distribute/stories/zomato.png?authuser=1&hl=bn)
অ্যাপ টু হোমপেজে (একটি সম্পূর্ণ লোড করা এবং ব্যবহারযোগ্য হোমপেজে অ্যাপ আইকনে ক্লিক করা) হল একটি মূল ব্যবসায়িক মেট্রিক যা Zomato অভ্যন্তরীণভাবে ট্র্যাক করেছে। উন্নতিগুলি বাস্তবায়িত হওয়ার পরে, তারা এই মেট্রিকে একটি অর্থবহ উন্নতি দেখেছে। এই সময়ের মধ্যে একটি সম্পূর্ণ লোড হওয়া পৃষ্ঠায় থাকা গ্রাহকদের সংখ্যা প্রায় 20% বৃদ্ধি পেয়েছে।
এটি 1 দিনের গ্রাহক ধরে রাখার ক্ষেত্রে প্রায় 90% উন্নতি করেছে! এই উন্নতিগুলি তাদের ফরোয়ার্ড ফানেলগুলিতেও একটি ট্রিকল ডাউন প্রভাব ফেলেছিল - সামগ্রিক অর্ডার থ্রু রেট (হোম -> মেনু -> কার্ট -> অর্ডার) ~1.5 শতাংশ পয়েন্ট দ্বারা উন্নত হয়েছে অর্থাৎ প্রায় 600K অর্ডার MoM।
ফায়ারবেসের পারফরম্যান্সের কোল্ড স্টার্টআপ মেট্রিক অনুসারে, গড়ে 25% উন্নতি হয়েছে এবং কম/মধ্য শেষ ডিভাইসগুলির জন্য, কোল্ড অ্যাপ স্টার্টআপ সময়ের উন্নতি 30% পর্যন্ত পৌঁছেছে।
অ্যাপ স্টার্টআপ টাইম পারফরম্যান্স একটি গুরুত্বপূর্ণ মেট্রিক যা ব্যবহারকারীর ধারণাকে প্রভাবিত করে এবং কর্মক্ষমতা অপ্টিমাইজ করার জন্য বিনিয়োগ প্রচেষ্টা ব্যবসার উপরও একটি উল্লেখযোগ্য প্রভাব ফেলতে পারে।
“জোম্যাটোতে, গ্রাহকদের একটি আশ্চর্যজনক অভিজ্ঞতা প্রদান এবং গড়ে তোলা সবসময়ই আমাদের আদর্শের কেন্দ্রবিন্দুতে ছিল। আমরা বিশ্বাস করি যে পারফরম্যান্স হল মূল লিভারগুলির মধ্যে একটি এবং তাই আমাদের দল Google-এর ডেভেলপার টুলগুলি ব্যবহার করে অ্যাপ লোডের সময় উন্নত করার জন্য ইঞ্জিনিয়ারিং শ্রেষ্ঠত্বের দিকে প্রয়াস করেছে এবং রিয়েল টাইমে উল্লেখযোগ্য ফলাফল পেয়েছে। এর মাধ্যমে, আমরা ভারতের অনলাইন অর্ডারিং চাহিদার জন্য একটি উজ্জ্বল দ্রুত অ্যাপ প্রদান করতে এবং আমাদের ভবিষ্যত উন্নয়নের জন্য একটি বেঞ্চমার্ক সেট করার আশা করছি।”
— সজল গুপ্ত, ইঞ্জিনিয়ারিং ম্যানেজার, জোমাটো