Book Image

Learning Python Application Development

By : Ninad Sathaye
Book Image

Learning Python Application Development

By: Ninad Sathaye

Overview of this book

Python is one of the most widely used dynamic programming languages, supported by a rich set of libraries and frameworks that enable rapid development. But fast paced development often comes with its own baggage that could bring down the quality, performance, and extensibility of an application. This book will show you ways to handle such problems and write better Python applications. From the basics of simple command-line applications, develop your skills all the way to designing efficient and advanced Python apps. Guided by a light-hearted fantasy learning theme, overcome the real-world problems of complex Python development with practical solutions. Beginning with a focus on robustness, packaging, and releasing application code, you’ll move on to focus on improving application lifetime by making code extensible, reusable, and readable. Get to grips with Python refactoring, design patterns and best practices. Techniques to identify the bottlenecks and improve performance are covered in a series of chapters devoted to performance, before closing with a look at developing Python GUIs.
Table of Contents (18 chapters)
Learning Python Application Development
Credits
Disclaimers
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Parallelizing the Gold Hunt program


Looking at the previous profiler output, the find_coins function is still the main bottleneck with ~19.5 seconds of cumulative time. Let's see how parallelization can help speed it up further.

Revisiting the gold field

Here is the gold field image from Chapter 7, Performance – Identifying Bottlenecks:

Let's quickly summarize what we already saw in Chapter 7, Performance – Identifying Bottlenecks:

  • The find_coins method is called for each of the small search circles shown in the figure. So, if there are 10 search circles, find_coins will be called 10 times, one after the other.

  • The find_coins method returns the coordinates of the gold coins lying inside the given search circle.

  • The information about all such collected coins is maintained in a list object.

There is one important thing to note here. It is a serial execution. You start with the first circle, collect the coins and move on to the next one, and repeat the procedure until you hit the other end of the...