Mastering Python High Performance

Packt Publishing Limited
  • 1. Auflage
  • |
  • erschienen am 9. September 2015
  • |
  • 260 Seiten
E-Book | ePUB mit Adobe DRM | Systemvoraussetzungen
978-1-78398-931-7 (ISBN)
Measure, optimize, and improve the performance of your Python code with this easy-to-follow guideAbout This BookMaster the do's and don'ts of Python performance programmingLearn how to use exiting new tools that will help you improve your scriptsA step-by-step, conceptual guide to teach you how to optimize and fine-tune your critical pieces of codeWho This Book Is ForIf you're a Python developer looking to improve the speed of your scripts or simply wanting to take your skills to the next level, then this book is perfect for you.What You Will LearnMaster code optimization step-by-step and learn how to use different toolsUnderstand what a profiler is and how to read its outputInterpret visual output from profiling tools and improve the performance of your scriptUse Cython to create fast applications using Python and CTake advantage of PyPy to improve performance of Python codeOptimize number-crunching code with NumPy, Numba, Parakeet, and PandasIn DetailSimply 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.Style and approachThis easy-to-follow, practical guide will help you enhance your optimization skills by improving real-world code.
  • Englisch
  • Birmingham
  • |
  • Großbritannien
978-1-78398-931-7 (9781783989317)
1783989319 (1783989319)
weitere Ausgaben werden ermittelt
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,
You can reach him on Twitter at @deleteman123.
When he is not programming, he spends time with his family.
  • Cover
  • Copyright
  • Credits
  • About the Author
  • About the Reviewers
  • Table of Contents
  • Preface
  • Chapter 1: Profiling 101
  • What is profiling?
  • Event-based profiling
  • Statistical profiling
  • The importance of profiling
  • What can we profile?
  • Execution time
  • Where are the bottlenecks?
  • Memory consumption and memory leaks
  • The risk of premature optimization
  • Running time complexity
  • Constant time - O(1)
  • Linear time - O(n)
  • Logarithmic time - O(log n)
  • Linearithmic time - O(nlog n)
  • Factorial time - O(n!)
  • Quadratic time - O(n^)
  • Profiling best practices
  • Build a regression-test suite
  • Mind your code
  • Be patient
  • Gather as much data as you can
  • Preprocess your data
  • Visualize your data
  • Summary
  • Chapter 2: The Profilers
  • Getting to know our new best friends: the profilers
  • cProfile
  • A note about limitations
  • The API provided
  • The Stats class
  • Profiling examples
  • Fibonacci again
  • Tweet stats
  • line_profiler
  • kernprof
  • Some things to consider about kernprof
  • Profiling examples
  • Back to Fibonacci
  • Inverted index
  • Summary
  • Chapter 3: Going Visual: GUIs to Help Understand Profiler Output
  • KCacheGrind - pyprof2calltree
  • Installation
  • Usage
  • A profiling example - TweetStats
  • A profiling example - Inverted Index
  • RunSnakeRun
  • Installation
  • Usage
  • Profiling examples - the lowest common multiplier
  • A profiling example - search using the inverted index
  • Summary
  • Chapter 4: Optimize Everything
  • Memoization / lookup tables
  • Performing a lookup on a list or linked list
  • Simple lookup on a dictionary
  • Binary search
  • Use cases for lookup tables
  • Usage of default arguments
  • List comprehension and generators
  • ctypes
  • Loading your own custom C library
  • Loading a system library
  • String concatenation
  • Other tips and tricks
  • Summary
  • Chapter 5: Multithreading versus Multiprocessing
  • Parallelism versus concurrency
  • Multithreading
  • Threads
  • Multiprocessing
  • Multiprocessing with Python
  • Summary
  • Chapter 6: Generic Optimization Options
  • PyPy
  • Installing PyPy
  • A Just-in-time compiler
  • Sandboxing
  • Optimizing for the JIT
  • Think of functions
  • Consider using cStringIO to concatenate strings
  • Actions that disable the JIT
  • Code sample
  • Cython
  • Installing Cython
  • Building a Cython module
  • Calling C functions
  • Solving naming conflicts
  • Defining types
  • Defining types during function definitions
  • A Cython example
  • When to define a type
  • Limitations
  • Generator expressions
  • Comparison of char* literals
  • Tuples as function arguments
  • Stack frames
  • How to choose the right option
  • When to go with Cython
  • When to go with PyPy
  • Summary
  • Chapter 7: Lightning Fast Number Crunching with Numba, Parakeet, and pandas
  • Numba
  • Installation
  • Using Numba
  • Numba's code generation
  • Running your code on the GPU
  • The pandas tool
  • Installing pandas
  • Using pandas for data analysis
  • Parakeet
  • Installing Parakeet
  • How does Parakeet work?
  • Summary
  • Chapter 8: Putting It All into Practice
  • The problem to solve
  • Getting data from the Web
  • Postprocessing the data
  • The initial code base
  • Analyzing the code
  • Scraper
  • Analyzer
  • Summary
  • Index

Dateiformat: EPUB
Kopierschutz: Adobe-DRM (Digital Rights Management)


Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat EPUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Adobe-DRM wird hier ein "harter" Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.

Weitere Informationen finden Sie in unserer E-Book Hilfe.

Download (sofort verfügbar)

32,73 €
inkl. 19% MwSt.
Download / Einzel-Lizenz
ePUB mit Adobe DRM
siehe Systemvoraussetzungen
E-Book bestellen

Unsere Web-Seiten verwenden Cookies. Mit der Nutzung dieser Web-Seiten erklären Sie sich damit einverstanden. Mehr Informationen finden Sie in unserem Datenschutzhinweis. Ok