Загрузка...

بايثون بطيئة! كيف تجعلها أسرع لـ 453 مليون عملية في الثانية؟ تعلم Cython Numba PyPy الآن

بايثون بطيئة! هي يمكن جعلها أسرع؟ إنها لُغةٌ سهلة التعلم، لكنها صعبةُ الإتقان 🤫 سوف يذهلك هذا السر !
بايثون إنها أروع لغة برمجة على الإطلاقِ -يقول البعض- لولا عيبٌ خطيرٌ يُهدد وجودها ويسير بها نحو الفناء ، البعض الآخر يراها فوق الفناء والزوال فهي وُجدت لتُحَب رغم عيوبها .. وسيبقى الفريقان في جدل مستمر !
فريق يرى مسألة البطء والسرعة في لغة بايثون مشكلة عظيمة لا يمكن للمبرمج غض البصر عنها ، وفريق يقول : بايثون لغة برمجة بطيئة! نعم ولكن لا يهم لأننا نستطيع جعلها أسرع لـ نصف مليار عملية في الثانية !

جدلٌ جئنا اليوم كي نقوم بحسمه للأبد ، فلقد حان الوقت لوضع لغة بايثون رهن التحقيق ، لإزالة الغموض عن أسوء شُبهةٍ وأخطر تُهمة في عالم لغات البرمجة على الإطلاق : الآداءُ السيء والبطء ! اليوم ستشاهدون واحدة من أفضل حلقات البرنامج !

في هذه الحلقة سنتعرف عن قربٍ على التصميم الداخلي للغة بايثون ، كيف يؤثر على الآداء، ما الذي يحصل في الكواليس، وكيف تعمل لغة بايثون؟، وما طبيعة العلاقة بينها وبين لغة السي ؟!

خلال كل هذا ستتعرف على الـ Compiler و الـ Interpreter وعلى الرحلة التي يقطعها الكود الخاص بك ليصل إلى لغة الآلة ويخاطب مُعالجات الكومبيوتر ، سنتعرف على الـ dynamic typing والـ multiprocessing ، والأهم وهو أهم شيء على الإطلاق :

كيف تجعل لغة بايثون أسرع ؟ بآلاف المرات ، وستتضمن الحلقة شرحا عمليا لـ Cython و Numba و PyPy ، والكثير من المواضيع المهمة الأخرى ، وصدقني أيضا إذا أخبرتك بأن هذا الشرح سيكون صديقاً للمبتدئين beginner friendly !
🔥 إذا كنت مهتم بهذه المواضيع ، أنصحك بتفعيل الإشعار، ولا تنسى تسجيل الإعجاب والإشتراك في القناة
🔴 كل المصادر والأكود والروابط موجودة هنا في مستودع الجيت هب الخاص بالحلقة :
https://github.com/Pythonation/python-fast-as-450million-op-in-sec

🔴 فهرس الحلقة :
🕒 00:00 بايثون لغة بطيئة :الأسباب المشاكل الحلول (مقدمة)
مقدمة الحلقة
🕒 01:33 ماذا نقصد بالبطء؟ الفرق بينه وبين الإنتظار في البرمجة
في هذا الجزء سنتحدث عن كيف يمكن أن تكون شفرتك بطيئةً لعدة أسباب ، والتي ليست كلها خطأ لغة البرمجة .. سنتحدث عن نوعين من المهام :
مهام الإدخال والإخراج Inputs Outputs والتي يطلق عليها اختصارا الـ I/O Tasks ومهام وحدة المعالجة CPU Tasks
🕒 02:50 الطفولة المبكرة للغة بايثون
كيف نشأت لغة بايثون وكيف تطورت من لغة ABC وكيف وصلتنا اليوم .
🕒02:50 لغة بايثون: intrpreter vs compiler
سنتحدث بالتفصيل عن آلية المُترجم وآلية المفسر وعن كيف تعمل بايثون مقابل لغة السي .
🕒04:44 المبحث الأول بايثون لغة برمجة مُفسَّرة
علاقة بايثون بلغة السي وتعمق أكثر في آلية تفسير الأكواد

🕒06:44 المبحث الثاني: بايثون لغة ديناميكية النمط
لغة بايثون: dynamic typing vs static typing

🕒07:43 المبحث الثالث : بايثون تجمع القمامة Python is a garbage-collected language
جامع القُمامة Python garbage-collector
كلام عن جامع القمامة في لغة بايثون ،دوره؟ وكيف يسبب البطء؟

🕒08:45 المبحث الرابع : Python Global Interpreter Lock
تعريف وشرح لسبب وجود قاتل الخيوط Python GIL، أيضا سيتطرق الكلام إلى المعالجة المتوازية وكيف يتم تنفيذ خيوط الكود على المعالج ،

🕒11:53 كيف نجعل لغة بايثون أسرع
شرحنا كيف أن لغة بايثون تضع سمعتها وسرعتها محل الشُبهة مُقابل تبسيط الأمور ، هذا الأمر ما كنا لُنبادله بأي شيء لأن الإنتاجية شيء مهم جداً ، بايثون تساعدنا على إنهاء المشاريع وفي المقابل كم من مشروع إستطعنا إنهاءه بلغة C ؟
ما قيمة الأداء إذا كانت الإنتاجية ستتجه إلى الهاوية ؟ توصلنا أن هُناك بعض الحلول للحصول على آداءِ لغةِ السي + ببساطةِ بايثون ، يتصادف أيضاً أن هذه الحلول من المهارات الأكثر طلباً اليوم .

🕒12:33 الحل الأول : سايثون Cythonسيثون
الحديث في هذا الجزء سيتطرق لـ سايثون كونه أكثر الحلول شعبية حين يتعلق الأمر بقوة الأداء في بايثون ، لأن مايكروسوفت و جوجل تستخدمانها،الكثير من المصادر تعرف سايثون على أنها لغة برمجة ، في الحقيقة هي أكثر من ذلك لأن سايثون هي كذلك عبارة عن مترجِم ثابت static compiler محسَّن لكل من لغة بايثون ولغة بايريكسPyrex معاً، وهذا ما سنتعرف عليه بالتفصيل .
🕒13:40 ما هو Cythonوكيف يعمل ؟
🕒14:42 كيف نقوم بتثبيت Cython ؟
🕒16:33 شرح Cython و بايثون
في هذا الجزء سنشرح بأكثر بساطة ممكنة كيف تكتب وتنفذ أول كود لك في cython
مصادر قوية لكي تتعلم منها Cython :

Best cython course in youtube by @pythonist
https://www.youtube.com/playlist?list=PLMOobVGrchXNbTrmUb8_3yZNscK3rle3B

best Cython lectures ,by @enthought
https://www.youtube.com/c/enthought/search?query=cython

23:37 الحل الثاني : Numba python
هنا سنتطرق لأحد أسهل الحلول القوية لجعل لغة بايثون فائقة الأداء والسرعة ،نتكلم عن مكتبة numba .
Numba تُترجم الكود الخاص ببايثون إلى لغة الآلة بالإعتماد على مُحول الـ LLVM ، تقوم Numba بترجمة الوظائف المكتوبة بلغة بايثون إلى لغة الآلة في وقت التشغيل ، باستخدام مترجِم يُدعى الـ LLVM.
23:55 ما هي Numba وكيف تعمل ؟
24:33 كيف نقوم بتثبيت Numba ؟
25:46 شرح Numba jit و Numba Prange
26:35 Numba VS Cython
27:03 الحل الثالث : باي باي PyPy
PyPy هو بديل كامل لـ CPython يمكن تثبيته بدل لغة بايثون ، الأمر العجيب أنه مكتوب بلغة بايثون نفسها . السبب الرئيسي لاستخدامه بدلاً من Python هو السرعة ! قبل أن نعرف لماذا هو أسرع ، إليك معلومة ستفجر دماغك سنتحدث عنه في هذا الجزء .
28:07 ما هو PyPyوكيف يعمل ؟
28:39 كيف نقوم بتثبيت PyPy ؟
29:00 كيفية استخدام PyPy
33:16 حلول أخرى تستحق الذكر
33:31 PyPy VS Cpython VS Numba VS Cython
في هذا الجزء سنركز على مقارنة النتائج التي توصلنا إليها .

Видео بايثون بطيئة! كيف تجعلها أسرع لـ 453 مليون عملية في الثانية؟ تعلم Cython Numba PyPy الآن канала Python Arabic Community
Страницу в закладки Мои закладки
Все заметки Новая заметка Страницу в заметки