<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های احمد پورغلام</title><link>https://virgool.ir/feed/@ahmadpoorgholam</link><description>دانشجوی سال آخر کارشناسی مهندسی نرم افزار ، طرفدار جامعه بزرگ پلتفرم های پایتونی :)</description><language>fa</language><pubDate>2026-11-12 09:22:51</pubDate><image><url>https://files.virgool.ir/upload/users/6517/avatar/avatar.png</url><title>احمد پورغلام</title><link>https://virgool.ir/@ahmadpoorgholam</link></image><item><title>افزایش پرفورمنس پایتون ( قسمت اول cython )</title><link>https://virgool.ir/@ahmadpoorgholam/cython-pgcrumebhqz9</link><description>به احتمال زیاد اگه با پایتون درگیر بوده باشید ، تا حالا از بقیه همکارا و دوستای غیر پایتونیتون (!)  تیکه هایی شنیدید که زبان کندیه . این حرف هم درسته و هم غلط. سرعت پایتون کاملا به نحوه کد نویسی و ماژول هایی که شما ازشون استفاده میکنید بستگی داره. طی این سری از مقاله ها میخوایم روش هایی رو با هم بررسی کنیم تا به کد بیس پایتونی خودمون سرعت اضافه کنیم. این قسمت به ابزار بی نظیری به اسم Cython میپردازه که پشت خیلی از کتابخونه های درست حسابی و به اصطلاح های پرفورمنس پایتون خوابیده.هدف سایتون اینه که به عنوان واسطه ای بین ++c/c و پایتون عمل کنه . کتابخونه های بزرگ ، سریع و بالغ دنیای تحلیل دیتا مثل Numpy , Pandas  و scikit-learn همگی از بهینه سازی های کد های c استفاده میکنن و وقتی شما اونا رو فرامیخونید، در واقع دارید از قدرت سی و سی پلاس پلاس استفاده میکنید.خب قدم اول برای داشتن یه ماژول سایتونی اینه که اطلاعات typing رو به کد خودتون اضافه کنیدما تو پایتون به  چنین چیزی عادت داریم:x = 5.0چیزی که سایتون ازتون توقع داره اینه :cdef float x = 5.0و درست مثل زبان های استاتیک تایپ ، شما باید به نوع متغیری که تعریفش کردید پایبند بمونید.برای اجرای یه اسکریپت سایتونی به دو تا مرحله نیاز دارید:نصب cython  با pipنصب کامپایلر سی / سی پی پی اگه لینوکس دارید که کارتون حله ، توی مک می تونید ایکس کد رو نصب کنید و توی ویندوز یکم دردسر خواهید کشید :(حالا که سایتون و یه کامپایلر داریم بریم سراغ دیدن کد. از فانکشن تستی زیر استفاده میکنیم: برخی از دیتا تایپ های سایتون عبارتند از :cdef int x,y,zcdef char *scdef float x = 5.2 (single precision)cdef double x = 40.5 (double precision)cdef list languagescdef dict abc_dictcdef object thingحالا اسکیریپت دوم رو با تغییراتی که میدیم به صورت pyx. سیو میکنیمبرای بیلد گرفتن از اسکیریپت به یه فایل واسطه و یه کامند احتیاجه python setup.py build_ext --inplace حالا باید یه فایل c. و یه فایل so. داشته باشیم و میتونیم این اکستنشن سی مون رو ایمپورت کنیم #testing.py&#xA;import example_cython&#xA;&#xA;example_cython.test(5)برای مقایسه سرعت به ماژول معروف timeit متوصل میشیمنوبت اجرا و مقایسس: $ python3 testing_things.py &#xA;0.0002787369999168732 0.04767731600031766&#xA;Cython is 171.04767581819533x faster 171 بار سریع تر ! پس از این به بعد لوپ هایی رو که عملگر های ریاضی دارند رو به سایتون بسپارید.سایتون دنیای بسیار بزرگیه پس شک نکنید و اگه براتون جالب بود شروع به خوندن مستنداتش  کنید.این نوشته ترجمه و نقل آزادی از این سایت وزین بود.شاد باشید!</description><category>احمد پورغلام</category><author>احمد پورغلام</author><pubDate>Mon, 19 Nov 2018 23:42:06 +0330</pubDate></item></channel></rss>