مجله علمی تفریحی بیبیس
0

دانلود کتاب پایتون سریع – تکنیک های عملکرد بالا برای مجموعه داده های بزرگ

بازدید 1375
  • عنوان کتاب: Fast Python / HIGH PERFORMANCE TECHNIQUES FOR LARGE DATASETS
  • نویسنده: TIAGO RODRIGUES ANTÃO
  • حوزه: برنامه نویسی پایتون
  • سال انتشار: 2023
  • تعداد صفحه: 304
  • زبان اصلی: انگلیسی
  • نوع فایل: pdf
  • حجم فایل: 8.87 مگابایت

چند سال پیش، یک خط لوله مبتنی بر پایتون که تیم من در حال کار بر روی آن بود، ناگهان متوقف شد. یک فرآیند فقط از CPU استفاده می کرد و نهایی نمی شد. این عملکرد برای شرکت حیاتی بود و ما نیاز داشتیم که مشکل را زودتر حل کنیم. ما به الگوریتم نگاه کردیم و به نظر خوب بود – در واقع، یک پیاده سازی کاملاً ساده بود. پس از ساعت‌ها با چندین مهندس که به مشکل نگاه می‌کردند، متوجه شدیم که همه چیز به جستجو در یک لیست خلاصه می‌شود – یک لیست بسیار بزرگ. پس از تبدیل لیست به مجموعه، مشکل به طور پیش پا افتاده حل شد. ما با ساختار داده بسیار کوچکتری با زمان جستجو در میلی ثانیه و نه ساعت به پایان رسیدیم. من در آن زمان چندین اپیفانی داشتم: ■ این یک مشکل پیش پا افتاده بود، اما روند توسعه ما به مسائل مربوط به عملکرد مربوط نمی شد. به عنوان مثال، اگر ما به طور معمول از یک پروفایلر استفاده می کردیم، اشکال عملکرد را در عرض چند دقیقه کشف می کردیم، نه چند ساعت. ■ این یک موقعیت برد-برد بود: ما در نهایت زمان کمتر و حافظه کمتری مصرف کردیم. بله، در بسیاری از موارد، معاوضه هایی وجود دارد که باید انجام شود، اما در موارد دیگر، نتایج واقعاً مؤثری وجود دارد که هیچ جنبه منفی ندارند. ■ از منظر بزرگتر، این وضعیت نیز برد-برد بود. اول، نتایج سریع‌تر برای نتیجه شرکت عالی است. دوم، یک الگوریتم خوب از زمان CPU کمتری استفاده می کند، که به معنای برق کمتر است، و استفاده از برق کمتر (یعنی منابع) برای سیاره بهتر است. ■ در حالی که مورد واحد ما کار زیادی برای صرفه جویی در انرژی انجام نمی دهد، متوجه شدم که بسیاری از برنامه نویسان در حال طراحی راه حل های مشابه هستند. من تصمیم گرفتم این کتاب را بنویسم تا برنامه نویسان دیگر بتوانند از عیادت های من استفاده کنند. هدف من کمک به برنامه نویسان با تجربه پایتون برای طراحی و پیاده سازی راه حل هایی است که کارآمدتر هستند، همراه با درک معاوضه های بالقوه. من می‌خواستم با بحث در مورد پایتون خالص و کتابخانه‌های مهم پایتون، در نظر گرفتن یک دیدگاه الگوریتمی و در نظر گرفتن معماری‌های سخت‌افزار مدرن و مفاهیم آنها، و بحث در مورد عملکرد CPU و ذخیره‌سازی، رویکردی جامع به موضوع داشته باشم. امیدوارم این کتاب به شما کمک کند تا در هنگام توسعه در اکوسیستم پایتون، در نزدیک شدن به مشکلات عملکرد اطمینان بیشتری داشته باشید.

A few years ago, a Python-based pipeline that my team was working on suddenly ground to a halt. A process just kept using CPU and was not finalizing. This function was critical to the company and we needed to solve the problem sooner rather than later. We looked at the algorithm and it seemed OK—in fact, it was quite a simple implementation. After many hours with several engineers looking at the problem, we found that it all boiled down to searching on a list—a very big list. The problem was trivially solved after converting the list into a set. We ended up with a much smaller data structure with search times in milliseconds, not hours. I had several epiphanies at that time: ■ It was a trivial problem, but our development process was not concerned with performance issues. For example, if we had routinely used a profiler, we would have discovered the performance bug in minutes, not hours. ■ This was a win-win situation: we ended up consuming less time and less memory. Yes, in many cases, there are tradeoffs to be made, but in others, there are some really effective results with no downsides. ■ From a larger perspective, this situation was also a win-win. First, faster results are great for the company’s bottom line. Second, a good algorithm uses less CPU time, which means less electricity, and the use of less electricity (i.e., resources) is better for the planet. ■ While our single case doesn’t do much to save energy, it dawned on me that many programmers are designing similar solutions. I decided to write this book so other programmers could benefit from my epiphanies. My objective is to help seasoned Python programmers to design and implement solutions that are more efficient, along with with an understanding of the potential tradeoffs. I wanted to take a holistic approach to the subject by discussing pure Python and important Python libraries, taking an algorithmic perspective and considering modern hardware architectures and their implications, and discussing CPU and storage performance. I hope this book helps you to be more confident in approaching performance problems while developing in the Python ecosystem.

این کتاب را میتوانید از لینک زیر بصورت رایگان دانلود کنید:

Download: Fast Python / HIGH PERFORMANCE TECHNIQUES FOR LARGE DATASETS

نظرات کاربران

  •  چنانچه دیدگاه شما توهین آمیز باشد تایید نخواهد شد.
  •  چنانچه دیدگاه شما جنبه تبلیغاتی داشته باشد تایید نخواهد شد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

بیشتر بخوانید