هزینه پنهان asyncدر فلاتر
هزینه پنهان عملیات async در فلاتر/دارت
به همین دلیل است که باید از استفاده بی رویه از کلمه کلیدی async خودداری کنید!
آیا تا به حال فکر کرده اید که کلمات کلیدی غیرهمگام اضافی شما را کندتر می کند؟
احتمالا نه.
پس اجازه دهید برخی از معیارها را ببینیم که چگونه بر عملکرد برنامه شما تأثیر میگذارند.
در اینجا توابعی وجود دارد که من قصد دارم آنها را آزمایش کنم.
void a() {} // does nothing
void b() async {} // does nothing
توجه داشته باشید:
در واقع، استفاده از void به همراه async یک عمل بد است.
اگر تابعی دارای کلمه کلیدی آن غیر همگام باشد، باید از کلمه کلیدی Future نیز استفاده کنید!
اما من فقط کلمه کلیدی async را اضافه می کنم.(به هر حال نتایج تغییر نمی کند)
همانطور که می بینید، آنها فقط توابع خالی هستند. و تنها تفاوت کلمه کلیدی async است.
من از بسته ی رسمی Dart برای محک زدن استفاده خواهم کرد.
بسته به طور پیش فرض از 10 بار تکرار استفاده می کند، اما من می خواستم آن را 100k کنم تا نتیجه را دقیق تر ببینم.
اساسا، من توابع a و b را برای آزمایش اجرا می کنم و تمام.
در نهایت، در اینجا گزارش های معیار مشخص است
همانطور که می بینید، حتی اگر مقیاس زمانی میکروثانیه باشد، استفاده از کلمه کلیدی async به طور اضافی برنامه شما را به میزان قابل توجهی کندتر می کند.
جهت آموزش فلاتر و سورسهای متعدد به سایت فلاتر فارسی سر بزنید
دیدگاهتان را بنویسید