discord icon
سرور دیسکورد گاردایران

پست های پیشنهاد شده

دلیل استفاده از پایتون

پایتون یک زبان برنامه نویسی قدرتمند، ساده و راحت است که با استفاده از اون می تونید به جای سینتکس زبان یا مسائل دیگر، روی ایده اصلیتون تمرکز کنید.

 

مشکل پایتون

اما مشکل بزرگ پایتون این است که برنامه های که با پایتون نوشته می شوند، بسیار از زبان های کامپایلی مانند C یا C++ کندتر اجرا می شوند.

و اگر کسی بخواهد بعد از پیاده سازی ایده اش در پایتون اون برنامه رو سریع کنه باید اون رو با یک زبان دیگه مثل C دوباره از اول بنویسه.

 

راه حل: PyPy

pypy-logo.jpg.3bff4859b6dab05e6d3a38e0dd04152a.jpg

خوشبختانه یک جایگزین برای پایتون وجود داره به نام PyPy که با اون میتونید دقیقا همون کد پایتون رو با سرعتی مانند زبان برنامه نویسی C اجرا کنید!

برای اینکه سرعت PyPy رو تست کنم، یک برنامه که اعداد ۱ تا ۱۰۰ میلیون را با هم جمع کنه با زبان پایتون و C نوشتم.

برنامه رو اول با پایتون اجرا کردم در سیستم من 9.6 ثانیه طول کشید.

بعد دقیقا همون برنامه رو بدون هیچ تغییری با PyPy اجرا کردم، نتیجه باورنکردنی بود و برنامه با سرعت بالایی در 27.9 صدم ثانیه اجرا شد!

برنامه C هم تقریبا مشابه PyPy در 27.8 صدم ثانیه اجرا شد.

image.png.69421775e80b0b4212583718778fab6b.png

 

آقای Guido van Rossum (سازنده پایتون) درباره PyPy می گوید:

If you want your code to run faster, you should probably just use PyPy.

اگر شما می خواهید کدتان سریعتر اجرا شود، احتمالا باید فقط از PyPy استفاده کنید.

 

 

اما چرا PyPy اینقدر سریع است؟

راز سریع بودن PyPy، کامپایل درجا یا Just In Time Compilation (JIT Compilation) است.

 

کامپایل جلوتر از زمان (Ahead Of Time Compilation)

زبان های برنامه نویسی مثل سی، سی پلاس پلاس، سوئیفت، Rust و ... به روش کامپایل جلوتر از زمان یا Ahead Of Time Compilation (AOT Compilation) اجرا می شوند.

به این معنی است که شما کدی را در یکی از این زبان ها می نویسید و یک کامپایلر آن را به زبان ماشین تبدیل می کند و سپس کدی را که به زبان ماشین تبدیل شده اجرا میکند.

 

مفسر (Interpreter)

زبان هایی مثل پایتون، جاوااسکریپت و زبان های مشابه توسط یک مفسر (Interpreter) اجرا می شوند.

در این روش برنامه بدون هیچ تغییری وجود دارد و هر زمان که برنامه اجرا شود مفسر به کد، خط به خط نگاه می کند و آن را اجرا می کند.

 

کامپایل درجا (Just In Time Compilation) یا Run-Time Compilation

اما کامپایل درجا یا Just In Time Compilation که PyPy از آن استفاده می کند چگونه است؟

در کامپایل درجا، هر قسمت از کد قبل از اجرایش کامپایل می شود.

یعنی نه مانند مفسر خط به خط کد را اجرا می کند.

و نه مانند کامپایل جلوتر از زمان تمام برنامه را اول کار کامپایل می کند.

کامپایل کردن درجا، ترکیبی از مفسر و کامپایل جلوتر از زمان است.

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

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

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری