انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: افزایش سرعت Python با استفاده از PyPy و پیش بینی آینده!  (دفعات بازدید: 2159 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین ngc0der

  • Full Member
  • *
  • ارسال: 106
حدود دو هفته پیش بود که pypy رو تست کردم و تنبلی باعث شد نتایجش رو اینجا به اشتراک نزارم! ولی چند روز پیش که تاپیک http://forum.ubuntu.ir/index.php/topic,97967.0.html رو دیدم گفتم زودتر این کار رو انجام بدم تا ...!خب برم سر اصل مطلب
pypy یک پیاده سازی از پایتون با استفاده از تکنیکهای JIT هست که در موردش در لینک بالا توضیحات خوبی داده شده. اگه یادتون باشه در http://forum.ubuntu.ir/index.php?topic=85867.0 در مورد تفاوت سرعت پایتون و ++c صحبت شده بود.کد زیر #!/usr/bin/python3
import random
dice = []
def rollDice():
    return random.randrange(1, 7)
for i in range(7):
    dice.append(0)
for i in range(1, 6000000):
    dice[rollDice()] += 1
for i in range(1, 7):
    print(dice[i], " ")
که در اون مطلب اومده بود رو با پایتون و بعد pypy اجرا کردم که در پایین مدت زمان اجرای کد در دو محیط رو می بینین:
پایتون :‌6.58s
pypy : 0.21s
که نشون میده کد در pypy حدود ۳۰ برابر سریعتر اجرا شده. البته اندازه گیریهایی که خود سایتش در زمینه های مختلف انجام داده افزایش سرعت رو به طور متوسط ۶ برابر در نظر گرفته.
در  حال حاضر این پروژه اینقدر بالغ شده که فریمورکهای معروف پایتون مثل جنگو اونو ساپورت می کنن پس میشه با خیال نسبتا راحت تری ازش استفاده کرد.
موارد جالب دیگه ای هم در این پروژه دیده میشه که مثلا یکی از اونا اینه که برنامه نویسهای این پروژه زبانی به اسم RPython تولید کردن که در واقع زیرمجموعه ای از پایتون محسوب میشه که میشه با اون زبانهای داینامیکی تولید کرد که سریعتر از پیاده سازی های رسمی کار می کنن که غیر از خود pypy میشه به این موارد اشاره کرد: پیاده سازی PHP با نام HippyVM که به گفته خودشون ۷.۳ برابر از پیاده سازی رسمی و ۲ برابر از HHVM یعنی پیاده سازی فیسبوک سریعتره.یا مثلا topaz که پیاده سازی روبی هست.
مورد دیگه ای که بد نیست بهش اشاره بشه اینه که یک پیاده سازی دیگه از پایتون هم وجود داره به اسم pyston که dropbox داره اونو پیش می بره که هنوز کامل نشده و فعلا سرعتی بین cpython و pypy داره و باید منتظر بمونیم ببینیم آخرش چی از آب درمیاد!
پیش بینی من اینه که اگه dropbox بتونه pyston رو به صورت رسمی عرضه کنه و اگه خالق پایتون که الان در dropbox کار می کنه اونو تایید کنه و به عنوان پیاده سازی رسمی در python.org قرار بده خب معلومه دیگه اون موقع پایتون می ترکونه! البته باید اینو هم در نظر داشته باشیم که Go هم داره خوب جلو میره طوری که حتی dropbox که از طرفداران سرسخت پایتونه بخشی از زیرساختهای خودش رو برای رسیدن به سرعت بالاتر به این زبان منتقل کرده.
به نظر می رسه که بعد از تقابل زبانهای داینامیک در زمینه سینتکس و سادگی استفاده حالا رقابت بر سر افزایش سرعت هست مثلا روبی هم در ورژنهای آینده بیشتر روی افزایش سرعت تاکید داره تا افزایش قابلیتهای زبان.


آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر
نکات دیگر:
- در بسیاری موارد برنامه‌هایی که با پای‌پای اجرا می‌شن، مصرف حافظه کمتری نسبت به پایتون دارند.
- در آخرین نسخه از پای‌پای، پشتیبانی از پایتون سه اضافه شده.
- سیستم زباله جمع کن در پای‌پای، کمی با پایتون اصلی تفاوت دارد.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

کسی می‌دونه رابطه پای‌پای با کیوی چطوریاس؟ می‌شه با هم استفاده‌شون کرد؟

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
در رابطه با کیوی مراجعه کنید به راهنمای رسمی کیوی صفحه ۷۵ اون شکله که توضیح داده که کیوی از چه چیزهایی استفاده می‌کنه.
فکر کنم باید سراغ اون پایینی‌ها رفت.

آفلاین ngc0der

  • Full Member
  • *
  • ارسال: 106
نقل‌قول
کسی می‌دونه رابطه پای‌پای با کیوی چطوریاس؟ می‌شه با هم استفاده‌شون کرد؟
مثل این که بخشهای زیادی از کیوی با cython نوشته شده که در این صورت اینقدر بهینه شده که استفاده از pypy تاثیری چندانی در سرعت اجرای برنامه نخواهد داشت.من برنامه ای که در ابتدای مطلب بهش اشاره کردم رو با cython هم نوشتم و با pypy اجرا کردم که تقریبا هیچ تاثیری در افزایش سرعت نداشت چون در cython متغیرها به صورت استاتیک تعریف میشن که امکان بهینه سازی رو بیشتر می کنه به همین دلیل کدی که تولید میشه از کدی که jit compiler در pypy تولید میکنه سریعتره.