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

Memory profiling


The profiling techniques we have covered so far aim at finding the runtime bottlenecks. Let's briefly discuss memory profiling, another important aspect of profiling.

The memory_profiler package

For memory profiling, we will use a popular Python package called memory_profiler. It can be installed using pip. Here is how to install it on Linux from the command line:

$ pip install memory_profiler

The documentation highly recommends installing the psutils module. It also suggests that, in order for memory_profiler to work on Windows OS, you will need the psutil module. The psutil module can be installed using pip, as follows:

$ pip install psutil 

Tip

For more information on memory_profiler, check out the following page: https://pypi.python.org/pypi/memory_profiler.

Just like line_profiler, the memory_profiler package uses the @profile decorator above the function name. Let's add the decorator @profile just above the generate_random_points function, and then run the memory profiler...