Simply knowing how to code is not enough; on mission-critical pieces of code, every bit of memory and every CPU cycle counts, and knowing how to squish every bit of processing power out of your code is a crucial and sought-after skill. Nowadays, Python is used for many scientific projects, and sometimes the calculations done in those projects require some serious fine-tuning. Profilers are tools designed to help you measure the performance of your code and help you during the optimization process, so knowing how to use them and read their output is very handy.
This book starts from the basics and progressively moves on to more advanced topics. You’ll learn everything from profiling all the way up to writing a real-life application and applying a full set of tools designed to improve it in different ways. In the middle, you’ll stop to learn about the major profilers used in Python and about some graphic tools to help you make sense of their output. You’ll then move from generic optimization techniques onto Python-specific ones, going over the main constructs of the language that will help you improve your speed without much of a change. Finally, the book covers some number-crunching-specific libraries and how to use them properly to get the best speed out of them.
After reading this book, you will know how to take any Python code, profile it, find out where the bottlenecks are, and apply different techniques to remove them.
What You Will Learn
- Master code optimization step-by-step and learn how to use different tools
- Understand what a profiler is and how to read its output
- Interpret visual output from profiling tools and improve the performance of your script
- Use Cython to create fast applications using Python and C
- Take advantage of PyPy to improve performance of Python code
- Optimize number-crunching code with NumPy, Numba, Parakeet, and Pandas
Fernando Doglio has been working as a web developer for the past 10 years.
During that time, he shifted his focus to the Web and grabbed the opportunity of working with most of the leading technologies, such as PHP, Ruby on Rails, MySQL, Python, Node.js, AngularJS, AJAX, REST APIs, and so on.
In his spare time, Fernando likes to tinker and learn new things. This is why his GitHub account keeps getting new repos every month. He’s also a big open source supporter and tries to win the support of new people with the help of his website, lookingforpullrequests.com.
You can reach him on Twitter at @deleteman123.
When he is not programming, he spends time with his family.