×
۴۷,۰۰۰ تومان ۲۸,۲۰۰ تومان

آموزش افزایش سرعت اجرای برنامه ها در Python

آموزش افزایش سرعت اجرای برنامه ها در Python

تعداد دانشجو
۶۹۸ نفر
مدت زمان
۱۴ ساعت و ۲۶ دقیقه
هزینه عادی آموزش
۴۷,۰۰۰ تومان
در طرح تخفیف
۲۸,۲۰۰ تومان

(کسب اطلاعات بیشتر +)
محتوای این آموزش
۶ بازخورد (مشاهده نظرات)
آموزش افزایش سرعت اجرای برنامه ها در Python

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

آموزش افزایش سرعت اجرای برنامه ها در Python

مدت زمان
۱۴ ساعت و ۲۶ دقیقه
هزینه عادی آموزش
۴۷,۰۰۰ تومان
در طرح تخفیف
۲۸,۲۰۰ تومان

(کسب اطلاعات بیشتر +)
محتوای این آموزش
۶ بازخورد (مشاهده نظرات)
مدرس
پژمان اقبالی شمس آبادی

کارشناس ارشد مهندسی مکانیک

مهندس پژمان اقبالی شمس آبادی کارشناس ارشد مهندسی مکانیک دانشگاه علم و صنعت ایران، مشغول انجام کار روی پروژه‌های خود در زمینه‌های آکوستیک، ارتعاشات و پردازش تصویر هستند. ایشان به مباحث دینامیک و ارتعاشات و همچنین برنامه‌نویسی علاقه‌مند هستند و سابقه کار با نرم‌افزارهای مهندسی مکانیک همچون: CATIA و COMSOL را دارند. ایشان به نرم‌افزار MATLAB مسلط هستند و توانایی برنامه‌نویسی با زبان‌های مختلف همچون: C++, Java, Python را دارند.

تضمین کیفیت و گارانتی بازگشت هزینه
توجه: کیفیت این آموزش توسط فرادرس تضمین شده است. در صورت عدم رضایت از آموزش، به انتخاب شما:
  • ۱۰۰ درصد مبلغ پرداختی در حساب کاربری شما شارژ می‌شود.
  • و یا ۷۰ درصد مبلغ پرداختی به حساب بانکی شما بازگشت داده می‌شود. (توضیحات بیشتر +)

چکیده آموزش


توضیحات تکمیلی

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

تعداد بسیاری از کسانی که با پایتون کار می کنند با مشکلات CPU یا حافظه محدود رو به رو هستند، بنابراین در این فرادرس به روش هایی برای حل این مشکل اساسی در پایتون پرداخته می شود. روش های مختلفی به منظور افزایش سرعت اجرای برنامه ها ارائه می شود تا مخاطبین این آموزش بتوانند از آن برای حل مشکلات خود در برنامه نویسی استفاده کنند.

فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
  • درس یکم: کارایی پایتون در اجرای برنامه
    • واحدهای اصلی محاسبات در کامپیوتر
      • Computing Unit
      • Amdahl’s Law
      • Memory Unit
      • Communications Layers
    • اجرای برنامه در پایتون برای مقایسه محاسبات ایده آل در مقابل Python Virtual Machine
    • دلیل استفاده از پایتون
  • درس دوم: مشخصه سازی
    • معرفی مساله Julia Set
    • پیاده سازی مساله Julia Set در پایتون
    • بررسی زمان اجرای برنامه Julia Set
    • پروفایلینگ (Profiling) مساله Julia Set با Print
    • پروفایلینگ مساله Julia Set با Timeit
    • پروفایلینگ
      • cProfile Module
      • line_profiler Module
      • memory_profiler Module
    • رسم خروجی memory_profiler با Matplotlib
    • معرفی ابزارهایی برای پروفایلینگ در Python 2
    • ماژول dis برای CPython Bytecode
    • Unit Testing در پایتون
  • درس سوم: داده ساختارهای List و Tuple در پایتون
    • پیاده سازی Linear Search روی List و Tuple
    • پیاده سازی Binary Search روی List و Tuple
    • موارد استفاده List برای بهبود کارایی برنامه
    • موارد استفاده Tuple برای بهبود کارایی برنامه
  • درس چهارم: داده ساختارهای Dictionary و Set در پایتون
    • مفهوم Hash Table
    • Lookup برای Dictionary و List
    • Inserting and Retrieving برای Dictionaries and Sets
    • Hash Function مناسب در پایتون
    • Dictionaries and Namespaces و کاربردش در افزایش کارایی برنامه
  • درس پنجم: کاربرد Iterator و Generator در پایتون
    • مفهوم generator و مساله Fibonacci
    • Iterator برای سری بی نهایت
    • کاربرد generator در خواندن فایل های داده سنگین و پردازش روی آن
    • مفهوم Lazy Generator Evaluation
  • درس ششم: محاسبات ماتریسی و برداری در پایتون
    • معرفی مساله Diffusion و تقریب Euler برای حل عددی
    • پیاده سازی مساله Diffusion به صورت یک بعدی و دو بعدی در پایتون
    • پروفایلینگ مساله Diffusion با استفاده از line_profiler
    • چند راهکار ساده برای بهبود کارایی برنامه
    • Memory Fragmentation
    • ماژول Numpy و بازنویسی مساله Diffusion با استفاده از آن
    • بررسی زمان اجرای مساله Diffusion با و بدون Numpy
    • کاربرد عملیات های In-Place
    • بازنویسی یک تابع Numpy برای شرایط مرزی و تاثیر آن روی زمان اجرای برنامه
    • Numexpr و زمان اجرای برنامه با استفاده از آن
    • استفاده از تابعی از SciPy در مساله Diffusion و بررسی زمان اجرای برنامه
  • درس هفتم: کامپایل کردن کد پایتون به زبان C
    • کامپایلرهای JIT و AOT
    • معرفی Cython
    • استفاده از Cython برای کامپایل کردن مساله Julia Set و بررسی زمان اجرای مساله بعد از کامپایل
    • مشخص کردن Type و تاثیر آن بر سرعت اجرای برنامه
    • استفاده از Numpy در مساله Julia Set و کامپایل با Cython و بررسی زمان اجرای برنامه
    • موازی سازی مساله Julia Set با استفاده از OpenMP
    • Numba برای سرعت بخشیدن به کد پایتون و پیاده سازی روی مساله Julia Set
    • pythran برای سرعت بخشیدن به کد پایتون و پیاده سازی روی مساله Diffusion
  • درس هشتم: هم زمانی (Concurrency) در پایتون
    • مفهوم Concurrency و نحوه پیاده سازی در پایتون
    • پیاده سازی یک برنامه به صورت Concurrent در پایتون و مقایسه زمان اجرا با حالت Non-concurrent
    • Async IO برای Concurrency
    • پیاده سازی چند مساله Concurrent با استفاده از Async IO در پایتون

آنچه در این آموزش خواهید دید:

آموزش ویدئویی مورد تائید فرادرس
فایل برنامه ها و پروژه های اجرا شده
فایل PDF یادداشت‌ های ارائه مدرس



پیش نمایش‌ها

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

توجه: اگر به خاطر سرعت اینترنت، کیفیت نمایش پایین‌تر از کیفیت HD ویدئو اصلی باشد؛ می‌توانید ویدئو را دانلود و مشاهده کنید (دانلود پیش‌نمایش - حجم: ۲۱ مگابایت -- (کلیک کنید +))

۲. مشخصه‌ سازی

توجه: اگر به خاطر سرعت اینترنت، کیفیت نمایش پایین‌تر از کیفیت HD ویدئو اصلی باشد؛ می‌توانید ویدئو را دانلود و مشاهده کنید (دانلود پیش‌نمایش - حجم: ۱۸ مگابایت -- (کلیک کنید +))

۳. داده‌ ساختارهای List و Tuple در پایتون

توجه: اگر به خاطر سرعت اینترنت، کیفیت نمایش پایین‌تر از کیفیت HD ویدئو اصلی باشد؛ می‌توانید ویدئو را دانلود و مشاهده کنید (دانلود پیش‌نمایش - حجم: ۲۶ مگابایت -- (کلیک کنید +))

۴. داده‌ ساختارهای Dictionary و Set در پایتون
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
۵. کاربرد Iterator و Generator در پایتون
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
۶. محاسبات ماتریسی و برداری در پایتون
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
۷. کامپایل کردن کد پایتون به زبان C
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
۸. هم‌ زمانی (Concurrency) در پایتون
مشاهده این پیش‌نمایش، نیازمند عضویت و ورود به سایت (+) است.
این آموزش شامل ۲۳ جلسه ویدئویی با مجموع ۱۴ ساعت و ۲۶ دقیقه است.
با تهیه این آموزش، می‌توانید به همه بخش‌ها و جلسات آن، دسترسی داشته باشید.

راهنمای سفارش آموزش‌ها

آیا می دانید که تهیه یک آموزش از فرادرس و شروع یادگیری چقدر ساده است؟

(راهنمایی بیشتر +)

در مورد این آموزش یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین ۵۷۹۱۶۰۰۰ (پیش شماره ۰۲۱) تماس بگیرید. - تمام ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). - میانگین زمان پاسخ دهی: ۳۰ دقیقه


اطلاعات تکمیلی

نام آموزش آموزش افزایش سرعت اجرای برنامه ها در Python
ناشر فرادرس
شناسه اثر ۸–۱۲۴۵۲–۰۶۹۳۴۷ (ثبت شده در مرکز رسانه‌های دیجیتال وزارت ارشاد)
کد آموزش FVPHT97091
مدت زمان ۱۴ ساعت و ۲۶ دقیقه
زبان فارسی
نوع آموزش آموزش ویدئویی (نمایش آنلاین + دانلود)
حجم دانلود ۱۲۰۸ مگابایت (کیفیت ویدئو HD‌ با فشرده سازی انحصاری فرادرس)




نظرات

تا کنون ۶۹۸ نفر از این آموزش استفاده کرده اند و ۶ نظر ثبت شده است.
مکرمی
مکرمی

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

مهدی
مهدی

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

مصطفی
مصطفی

از همه جهات خوبه. جامع هست فن بیان استاد خوبه هم سخت افزاری و هم نرم افزاری خوب تدریس می کنن.

مهدی
مهدی

سلام و درود به تمام عاشقان پایتون
دوره خیلی خوب و جالبی بود من غیر از اینجا همچین آموزشی ندیده بودم چون یکی از معدود ایرادات زبانهای سطح بالا مثل پایتون سرعت پایین تو برنامه های بزرگه که این دوره خیلی دید خوب و جامعی برای رفع این مشکل بهتون میده ضمن اینکه باعث میشه یه دید جامعتری به پایتون پیدا کنید
فقط یه پیشنهادی داشتم اونم اینکه یه آموزش برای دادن یه نقشه راه بلند مدت برای کسایی که وارد آموزش زبان و بطور خاص پایتون میشن تهیه کنید چون خیلیا بعد از اتمام دوره مقدماتی واقعا نمیدونن باید چیکار کنن و چجوری مسیرشونو ادامه بدن
ممنون

جلال
جلال

آقای اقبالی خیلی خوب درس رو دادند. مسلط بودند و اصل مطلب رو گفتند.

مجتبی
مجتبی

آموزش عالی بود و به من خیلی کمک کرد.

دسته‌بندی موضوعی: برنامه نویسی | پایتون
برچسب‌ها:
Amdahl’s Law | AOT | Async IO برای Concurrency | bytecode | Communications Layers | Computing Unit | Cython | Cython برای کامپایل کردن مساله Julia Set | Diffusion | Fibonacci | Hash Function | Hash Function مناسب در پایتون | Hash Table | Inserting and Retrieving | JIT | Julia Set | Lazy Generator Evaluation | line_profiler | Lookup برای Dictionary | Memory Fragmentation | Memory Unit | Pythran | استفاده از List برای بهبود کارایی برنامه | استفاده از Tuple برای بهبود کارایی برنامه | پروفایلینگ با استفاده از cProfile Module | پروفایلینگ با استفاده از line_profiler Module | پروفایلینگ با استفاده از memory_profiler Module | پروفایلینگ مساله Diffusion | پروفایلینگ مساله Julia Set با Timeit | پیاده سازی مساله Diffusion | پیاده سازی مساله Julia Set | پیاده سازی مساله Julia Set در پایتون | تقریب Euler برای حل عددی | داده ساختار Dictionary | داده ساختار List در پایتون | داده ساختار Tuple در پایتون | دلیل استفاده از پایتون | رسم خروجی memory_profiler با Matplotlib | زمان اجرای برنامه Julia Set | کارایی پایتون | کارایی پایتون در اجرای برنامه | کاربرد Generator در پایتون | کاربرد Iterator در پایتون | کامپایلر AOT | کامپایلر JIT | ماژول dis برای CPython Bytecode | ماژول Numpy | محاسبات ماتریسی و برداری در پایتون | مساله Diffusion | مساله Diffusion بصورت یک بعدی | مساله Fibonacci | مساله Julia Set | معرفی ابزارهایی برای پروفایلینگ در Python 2 | مفهوم Hash Table | مفهوم Lazy Generator Evaluation | موازی سازی مساله Julia Set | واحدهای اصلی محاسبات در کامپیوتر
مشاهده بیشتر مشاهده کمتر

فهرست جلسات ۲۳ جلسه ویدئویی ×