ویرگول
ورودثبت نام
مهدی
مهدی
خواندن ۳ دقیقه·۳ سال پیش

قرار است سرعت پایتون ۵ برابر شود :)


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

در یکی از خطوط راهنمای (Guide line) توسعه سی‌پایتون خوندم: سورس کد سی‌پایتون (خصوصا اگر به زبان سی باشه) باید ساده و قابل فهم باشه، حتی کامنت‌ها و داکیومنتیشنی که برای اون کد تولید میشه باید ساده باشه و حتی کلمات اون باید در حد فهم یکی دانشجوی کارشناسی رشته کامپیوتر (undergraduated student) باشه. چون پایتون داره توسط یک جامعه بزرگ پیشرفت می‌کنه و سورس‌کد نباید جوری باشه که به شخص خاصی وابسته بمونه و کس دیگه‌ای نتونه اون رو بفهمه و بهترش کنه.

از این رو تا الان که چند وقتی از منتشر شدن پایتون 3.10 میگذره، تمرکز و توجه توسعه‌دهنده‌های سی‌پایتون روی ویژگی های جدید و افزودن قابلیت های جدید به پایتون بوده و کمتر به بهینه‌تر کردن کد و سریع‌تر کردن اون پرداخته شده (به «تر» ها دقت کنید.) البته این به این معنی نیست که چیزی که الان داریم بهینه نیست، صد البته که هست، بحث تمرکز کردن فقط روی بهینگی هست، وگرنه برای مثال دیکشنری ها در پایتون از چیز‌هایی اند که وقت و تلاش بسیاری برای بهینه کردنشون صورت گرفته و اصطاحا میگن
dictionary lookups are super fast.

یکی از کسایی که پروژه تمرکز روی بهینه کردن سی‌پایتون رو استارت زد آقای مارک شنون Mark Shannon بود که رساله دکتری‌اش در مورد ساخت ماشین های مجازی با کارایی بالا برای زبان های پویا ( The construction of high-performance virtual machines for dynamic languages ) هست. پروژه‌ای که ایشون روش کار می‌کردن HotPy نام داشت. این پروژه به ورژن دو رفت و HotPy 2 تولید یک کامپایلر JIT رو نوید میداد.

بعد از بازنشسته شدن گویدو ون راسم از شرکت دراپ‌باکس، او پس از گذروندن مدتی متوجه شد که نمیتونه توی خونه بمونه و باید کاری انجام بده، سپس او تصمیم گرفت که بره مایکروسافت و اونجا کار کنه. که گویدو راجع بهش میگه:

"I got bored sitting at home while retired. I applied at Microsoft and got hired. I was given freedom to pick a project. I chose to go back to my roots. This is Microsoft's way of giving back to Python."

سر انجام، گویدو ون راسم، مارک شَنون و اریک اسنو (Eric Snow) تیم کوچکی رو تشکیل دادن (که گویدو میگه ممکنه بزرگ تر هم بشه) که فقط می‌خوان روی بهینه‌تر کردن سی‌پایتون و سریع‌تر کردن اون کار بکنن.

این تیم یک ریپازیتوری داره به اسم Faster CPython که یک فورک از سی‌پایتون و دو ریپازیتوری دیگه در اون وجود داره که پیشنهاد می‌کنم حتما مطالعه کنید.

https://github.com/faster-cpython

تا الان خود گویدو ون راسم گفته که قراره سرعت سی‌پایتون در ورژن 3.11 دو برابر بشه.

جدای از این‌ها آقای مارک شَنون، خودش یک ریپازیتوری به اسم Faster Cpython داره که در نقشه راهی که اون ترسیم کرده ( که پیشنهاد میدم این رو هم حتما بخونید ) قراره سرعت پایتون طی چهار انتشار دیگه‌، ۵ برابر بشه. 1.5 ** 4 = 5.0625

https://github.com/markshannon/faster-cpython

یکی از مهم‌ترین فاکتور هایی که این تیم در نظر دارن، سازگاری با ورژن های گذشته پایتون هست. از اونجایی که پایتون بین دانشمندان بسیار محبوبه و پروژه های خییلی زیادی با پایتون در سراسر دنیا ( با تکیه بر همین پایتونی که الان داریم ) دارن کار می‌کنن، اون‌ها نباید این گستردگی رو فدای سرعت بکنن و گویدو گفته بسیار روی این موضوع سخت‌گیر هستیم.

آقای مارک شنون در این باره میگه:
در مورد این سخت‌گیری باید از گویدو بپرسید، اما فکر میکنم یکی از دلایل این سخت‌گیری اینست که محبوبیت پایتون در یادگیری ماشین در چند سال اخیر افزایش چشم‌گیری داشته و بدین معنی‌ست که نباید سریع‌تر کردن پایتون، به پایداری اون و کد هایی که الان داره کار می‌کنه لطمه بزنه.

یکی از مثال های بازر این تغییر زبان، رفتن پایتون از ورژن دو به ورژن ۳ بود که برای بسیاری این مهاجرت دردناک بود.

منابع:

  • گویدو ون راسم و مارک شنون با مایکل کندی، در پادکست Talk python to me.

نسخه صوتی

https://talkpython.fm/episodes/show/339/making-python-faster-with-guido-and-mark

نسخه ویدیویی

making-python-faster-with-guido-and-matk-YouTube


شاد باشید :)

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