tgoop.com/pythopiachannel/212
Create:
Last Update:
Last Update:
جادوگر پر سرعت پایتون
AsyncIO
پایتون زبون قدرتمندیه ولی به خاطر قفل سراسری مفسر (GIL) تو سرعتهای خیلی بالا محدود میشه.
اینجا GIL مثل یه بلیت VIP عمل میکنه: فقط یه نخ (thread) میتونه در هر لحظه اجرا بشه، حتی اگه CPU ی شما 16 هستهای باشه.
حالا برای سریعتر شدن باید بدونیم کارمون CPU-bound هست یا I/O-bound.
کار های CPU-bound مثل پردازش تصویر یا تحلیل دادههای سنگین نیاز به حساب و کتاب مداوم داره. اینجا باید از Multiprocessing استفاده کنیم چون هر پروسه مفسر خودش رو داره و روی هستههای مختلف بهصورت موازی اجرا میشه، پس محدودیت GIL رو دور میزنیم.
عملیات I/O-bound مثل گرفتن داده از چند API یا کار با دیتابیس، بیشتر وقتش صرف انتظار میشه. اینجا AsyncIO بهترین انتخابه چون به جای منتظر موندن، پایتون سراغ کار بعدی میره و از زمان CPU نهایت استفاده میکنه.
نتیجه: برای کارهای محاسباتی از Multiprocessing و برای کارهای پر از انتظار مثل درخواستهای شبکهای از AsyncIO استفاده میکنیم.
BY Pythopia

Share with your friend now:
tgoop.com/pythopiachannel/212
