Ninja Learn | نینجا لرن
1.26K subscribers
102 photos
38 videos
11 files
313 links
یادگیری برنامه نویسی به سبک نینجا 🥷
اینجا چیزایی یاد میگیری که فقط نینجاهای وب‌ بلدن 🤫

📄 Send me post: https://t.iss.one/NoronChat_bot?start=sec-fdggghgebe

👥 ɢʀᴏᴜᴘ: https://t.iss.one/+td1EcO_YfSphNTlk
Download Telegram
Ninja Learn | نینجا لرن
یه پست بعدا راجبش میسازم که چرا دردسر سازه و چجوری میشه دورش زد :)
خب همونجور که میدونید درمورد GIL یا همون Global Interpreter Lock بحث زیاده 🤯

مشکل ما با GIL چیه؟
اینه که نمیذاره مولتی‌تردینگ واقعی داشته باشیم.
یعنی چی؟
یعنی نمی‌تونیم چندتا تسک رو همزمان روی چندتا ترد اجرا کنیم.
چرا؟
چون GIL میگه:
«در هر لحظه فقط یه ترد حق داره اجرا بشه، بقیه باید وایسن نوبتشون بشه.»

حالا نکته بامزه اینجاست:
اگه بیای چندتا ترد ران کنی، این تردا میان سر GIL دعوا می‌کنن کلی context switching می‌خوره latency میره بالا یه عالمه overhead میاد رو برنامه.
نتیجه؟ مولتی‌تردینگ برای کارای CPU-bound نه تنها کمک نمی‌کنه، بدترم می‌کنه برای همین باید single-thread باشه 😅
(احتمالاً خودتونم وقتی async برای CPU-bound نوشتید دیدید چه وضعیه.)

حالا چرا اصلاً GIL وجود داره؟
سؤال خوبیه 👌
خیلی خلاصه بگم نذاشته پایتون به چوخ بره 😂
چطوری؟
میاد thread safety رو برات تضمین می‌کنه، نمیذاره race condition بیاد وسط و همه چی بترکه.

ولی خب GIL دردسرم کم درست نمیکنه:

نمیذاره مولتی‌تردینگ CPU-bound داشته باشیم.

بعدم بخوای حذفش کنی هزاران لایبری که با درنظر گرفتن gil نوشته شده باید اپدیت بشن :)

و....
کلاً محدودمون می‌کنه.

راه‌حل چیه؟

1. C Extension
یعنی توابع سنگینت رو تو C بنویسی، اونجا اجرا بشه، فقط از پایتون صدا بزنی. اینجوری GIL رو می‌تونی دور بزنی.

2. Multiprocessing
این یکی مطرح ترین راهه. به تعداد core های CPU پروسس بالا میاری. هر پروسس مفسر خودش و در نتیجه GIL خودش رو داره اینجا واقعاً موازی میشه.
ولی اینجا یه توهمه که «ایول مشکل حل شد»…
سخت در اشتباهید 😅
چرا؟
چون:
ـprocess خیلی سنگینه، هر کدوم کلی overhead دارن.

ارتباط بین processها (همون IPC) خودش یه هزینه‌ی جداست.
داده‌ها باید بین processها جابه‌جا بشن (queue، pipe، shared memory و …) که اینم کندی و مصرف حافظه میاره.

گزینه اپشنال شدن گیل هم توی ۳.۱۳ کامل گیل رو حذف نمیکنه میتونیم مولتی پراسسینگ و موازی سازی کنیم ولی خب خودشون هنوز تایید نکرده و ازمایشیه و کلی مشکلات داره.

گزینه هاییم هست مثل استفاده از nogil که خب یکسری مشکلات دارن که توی این پست جا نمیشن بگم

📌 خلاصه: GIL هم ناجیه، هم قاتل. ناجی چون امنیت میده، قاتل چون مولتی‌تردینگ CPU-bound رو ازمون میگیره. ولی خب این مورد توی I/O bound process نیست چون وقتی یه پراسس io ران میشه گیل خاموش میشه و میتونی parallel processing داشته باشی :)

#️⃣ #web #programming

 
🥷🏻 CHANNEL | GROUP
❤‍🔥112👍2
هرخارجی که ویوش کم میشه یه ویدیو درمورد ایران میسازه یا فارسی حرف میزنه ویوهاش میلیونی میشه 😂😂

ماهم بیایم یه مدت محتوای انگلیسی بزاریم یهو فارسی صحبت کنیم 🗿
Yea man this a business
🤣20
This media is not supported in your browser
VIEW IN TELEGRAM
فقط اونجایی که گفت برادر c رو زبان سطح بالا صدا زد 😂
🤣17🔥4
Ninja Learn | نینجا لرن
فقط اونجایی که گفت برادر c رو زبان سطح بالا صدا زد 😂
میتونم به جرعت بگم یکی از اشخاصیه که ۲۰۰ سال دیگه هم هوش مصنوعی نمیتونه جاشو بگیره🗿
10
Forwarded from LearnPOV
با اعضای تیم لرن‌ پی‌ او وی آشنا شید 🥇

توی صفحه تیم ما میتونید اعضای تیم LearnPOV آشنا بشید 😉


🔗 مشاهده تیم ما

🏫 @LearnPOV | اولین شبکه اجتماعی آموزشی
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
LearnPOV
با اعضای تیم لرن‌ پی‌ او وی آشنا شید 🥇 توی صفحه تیم ما میتونید اعضای تیم LearnPOV آشنا بشید 😉 🔗 مشاهده تیم ما 🏫 @LearnPOV | اولین شبکه اجتماعی آموزشی
محمد حسین خیلی خوشحالم که بعد کلی زحمتی که کشیدی تونستی پلتفرم خفنتو بیاری بالا :)❤️
ارزوی بهترینا رو برات داریم 😉
🔥81👌1
خدا بخیر کنه 🫡
🫡9🤣3
جت برین اعصاب نداره
🤣10
من وقتی کدای پکیج فروشای عزیز رو میبینم
🤣16
زندگی اونجایی سخت میشه که مجبور میشی با ۲۲۲ گیگ حافظه سوروایو کنی
7
برام سوال شده ایرانی بودن فیچره یا باگه
🤣17😭3
توی این چند وقت اونقدر چیز میز یادگرفتم که سروقت همشو بهتون یاد میدم
12❤‍🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
عادی ترین برنامه نویس صبح شنبه
🤣72
عجیب ترین کدی که دیدید چه کاری انجام میداده
طبیعیه وقتی قهوه میخورم انگار چیت ذهن زدم؟
(چاکراهام باز میشه انگار 😂)
👎6👍1👌1
Forwarded from LearnPOV
لرن پی او وی منتشر شد 🥳💎

سلام رفقا، بالاخره بعد از کلی تلاش و تست، LearnPOV به صورت عمومی منتشر شد، و میتونید استفاده کنید ازش ✌️

قبلا چندین بار راجب لرن پی او وی صحبت کردیم ولی اگر نمی‌دونید هنوز که چیه دقیقا میتونید توی صفحه زیر بخونید راجبش

🔗‌ ‌ website.learnpov.com


رسما از امروز برنامه‌نویس‌ها یه شبکه اجتماعی اختصاصی دارن، و خوشحالیم که تونستیم این اتفاق رو در کنار تیم خوب لرن پی او وی رقم بزنیم 👍

این تازه شروع راهه؛ قراره جایی بسازیم که برنامه‌نویس‌ها توش رشد کنن، تجربه‌هاشون رو به اشتراک بذارن و از همدیگه یاد بگیرن...


شما هم میتونید از همین لحظه تجاربتون رو به اشتراک بزارید 🔥

👤 ایجاد حساب کاربری

🔍 اکسپلور

📝 ساخت پست جدید

راستی میتونید نسخه PWA لرن پی او وی رو روی گوشیتون نصب کنید تا مثل اپلیکیشن های نیتیو ازش استفاده بکنید 📱


🏫 @LearnPOV
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍1🔥1