مهندسان اوبر در یک بلاگپست فنی جزییات جالبی از نصف کردن تاخیر جستجوی Uber Eats منتشر کردهاند. فارغ از بهینهسازیهای مرسوم معماری، استفاده عملیشان از ایجنتهای هوش مصنوعی برای تیونینگ کد توجه من را جلب کرد.
خلاصه تغییرات کلیدی:
۱. تغییر متریک اصلی به ATF (مدتزمان رندر اولین بخش تصویر در گوشی کاربر) و تبدیل رندر HTML به یک پایپلاین کاملا Async.
۲. جداسازی Hydration به دو فاز مجزا؛ واکشی سریع سیگنالهای رتبهبندی برای اجرای زودهنگام مدلها، و لود موازی جزییات نمایشی (قیمت، تصویر و...).
۳. بهینهسازی امبدینگها با کاهش دقت اعشار و فشردهسازی تا ۴۶٪، در کنار تبدیل پوینترها به Value types در کد Go که مصرف ۴۰ درصدی پردازنده توسط Garbage Collector را به شدت کم کرد.
۴. استفاده از لوپ خودکار ایجنتی؛ ایجنت با تحلیل پروفایلهای زنده پروداکشن، باتلنکهای ریز را پیدا میکرد، کد بهینهسازی مینوشت، پولریکوئست میزد و با بنچمارک نتیجه را میسنجید.
۵. برنامههای آینده بر پایه مایکروبچینگ، فیلترینگ در لایه ایندکس (Zero-Pass Ranking) و استریم فرگمنتهای نتایج به سمت کلاینت.
لینک مقاله: بخوانیدش، خیلی جالبه!
uber.com/us/en/blog/uber-eats-search-pipeline/
@DevTwitter | <Mehdi Allahyari/>
Post #13236
6.65K
- ❤ 22
- 👍 6