رفتن به مطلب
بازگشایی انجمن! ×
GuardIran

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

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

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

 

مشکل پایتون

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

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

 

راه حل: PyPy

This is the hidden content, please

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

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

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

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

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

This is the hidden content, please

 

آقای 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 از آن استفاده می کند چگونه است؟

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

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

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

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

 

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


به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • ایجاد مورد جدید...