Goodreads helps you keep track of books you want to read.
Start by marking “High Performance Python: Practical Performant Programming for Humans” as Want to Read:
High Performance Python: Practical Performant Programming for Humans
Enlarge cover
Rate this book
Clear rating
Open Preview

High Performance Python: Practical Performant Programming for Humans

by
4.15  ·  Rating details ·  145 ratings  ·  12 reviews
If you're an experienced Python programmer, High Performance Python will guide you through the various routes of code optimization. You'll learn how to use smarter algorithms and leverage peripheral technologies, such as numpy, cython, cpython, and various multi-threaded and multi-node strategies.

There's a lack of good learning and reference material available if you want
...more
Paperback, 370 pages
Published August 25th 2014 by O'Reilly Media (first published October 22nd 2013)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about High Performance Python, please sign up.

Be the first to ask a question about High Performance Python

Community Reviews

Showing 1-30
Average rating 4.15  · 
Rating details
 ·  145 ratings  ·  12 reviews


More filters
 | 
Sort order
Start your review of High Performance Python: Practical Performant Programming for Humans
Amir Sarabadani
Jun 02, 2019 rated it it was amazing
The only thing I felt missing was that it didn't mention celery in cluster distributed computing but beside that, it was amazing. ...more
Vlad Ardelean
Jan 27, 2019 rated it it was amazing
Very informative book, even though it's mostly talking about python 2.7 (the current stable version is 3.7).

What I found most useful were:
1. Talks about various tools/interpreters/compilers to help speed up python computations. Notable mentions: PyPy, Cython, numpy, numba, numexpr

2. Various profilers: line_profiler (for time), memory_profiler (for memory...), pympler (again, for memory). Heapy.guppy would have been awesome, but it's py 2.7 only (for memory profiling...for now?)

3. The ubiquitous
...more
Rustam Aliyev
Feb 08, 2018 rated it liked it
Shelves: computer-science
Good: As book states, it is meant to be read by intermediate-advanced Python developers. It mainly adds color to the notions one already used while developing software and well explains the reasons behind each operation. Profiling chapter was very informative as well as parallel and concurrent programming related ones. In addition, many external libraries and frameworks get introduced which can significantly simplify and enhance the developed application.

Bad: This book will not teach you how to
...more
Matt
Mar 04, 2016 rated it it was amazing
This is a must-read for anyone building larger or more demanding software using Python. It gives an overview of ways that you can use to make your code fly. It's just deep enough to get you going in some direction, but it's short and to the point so that you can finish it in a few days and come away with your head full of new ideas.

The authors do a great job of sequentially building up a pool of knowledge, going from "easy to implement" changes to "let's roll out the big guns" solutions and so c
...more
Qwetro
Oct 26, 2017 rated it it was amazing
虽然一开始只是想买来学习一下并行计算相关的内容,翻开后发现讲的远不止并行计算而已,很专业。
John Pyrce
Aug 16, 2018 rated it really liked it
Some good insights into how to deal with performance issues with Python. Much of this is standard strategies for profiling.
Povilas Balciunas
Mar 14, 2017 rated it really liked it
A good read about some of the python internals related to performance.
I learned about some new tools and practices.
Especially Cython and probabilistic data structures which will definitely be useful.
Jeremy
Jan 24, 2017 rated it really liked it
Shelves: computer-science
Very practical book about performance optimization in Python. The reader is introduced to various tools and practices to help improve the performance of existing Python programs.

The approach is well described and very methodological. The book can (should?) be read from cover to cover, because the topics are introduced in the natural way of the optimization process. Isolate, profile and optimize the parts of a program (or system).

It's also quite funny to go in the details of multiprocessing, syn
...more
Alex
Feb 21, 2016 rated it it was amazing
I am half way through and cannot believe how good this book is. It matches just right with my general programming experience and newbie Python experience providing good overview of Python profiling and optimization techniques and tools. The authors seem to know what are they taking about and the text strikes just the right balance with details (at least to my level). Even things I already knew explained well enough to serve as a good refresher. I will add more details once I am done but I know I ...more
Franck Chauvel
May 21, 2016 rated it really liked it
High Performance Python helps you speed up your python programs, especially numerical/scientific applications. It covers many practices ranging from profiling CPU and memory to AOT and JIT compilation using Cython, parallelism and distribution, and many other Python tools.

Having read it from cover to cover, I feel overwhelmed by the many tips and tricks (library, compilers, interpreters, etc.). Yet, I feel there is some wisdom on how one systematically approaches performance optimization, but i
...more
Serdar
Dec 19, 2016 rated it really liked it
Really good soup to nuts overview of getting the most out of Python. The section on Cython is a little short for my taste, hence the docking of one star, but there's also a great standalone book on that very framework, so I can't complain too much. Great for most every class of user, from those doing scientific computing to those developing generically in Python and who just want to know how to eke out that much more oomph. ...more
Xander
Mar 22, 2016 rated it it was ok
There's a ton of useful ideas in this book, but very few of them are explained well. It should be viewed as a list of suggestions for Python documentation to go read. ...more
Andreas
rated it it was amazing
Sep 01, 2019
Nicholas Ursa
rated it really liked it
Jan 02, 2016
Pavlo Iuriichuk
rated it really liked it
Mar 06, 2021
Evgeny
rated it really liked it
Sep 06, 2017
Sakares Saengkaew
rated it it was ok
Apr 15, 2019
Lorgath
rated it really liked it
May 22, 2019
Subhajit Das
rated it really liked it
Dec 01, 2019
Thomas Fan
rated it it was amazing
Dec 04, 2016
Jacek
rated it really liked it
Mar 30, 2020
Eric Nichols
rated it really liked it
Aug 08, 2015
Petter
rated it really liked it
Dec 18, 2017
Michelle Tran
rated it really liked it
Jul 16, 2014
Josh
rated it really liked it
Jun 27, 2017
Micha Gorelick
Mar 14, 2015 rated it it was amazing  ·  (Review from the author)  ·  review of another edition
Ikaro Silva
rated it liked it
Nov 09, 2018
Mariano
rated it really liked it
Mar 07, 2020
Bondrew Wang
rated it it was amazing
Dec 09, 2015
Shah
rated it it was amazing
Jun 12, 2020
« previous 1 3 4 5 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
  • Designing Data-Intensive Applications
  • Learning Python
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • No Rules Rules: Netflix and the Culture of Reinvention
  • Mastering Python Design Patterns
  • Programming Python
  • Python for Data Analysis
  • There's No Such Thing as an Easy Job
  • Ogni giorno è un buon giorno: Quindici gioie che il tè mi ha insegnato
  • The Soul of a New Machine
  • The Making of a Manager: What to Do When Everyone Looks to You
  • Algorithms Unlocked
  • Learning React: A Hands-On Guide to Building Maintainable, High-Performing Web Application User Interfaces Using the React JavaScript Library
  • Fluent Python: Clear, Concise, and Effective Programming
  • Data Structures and Algorithms Made Easy
  • Design Patterns: Elements of Reusable Object-Oriented Software
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »

Related Articles

  Here at Goodreads, we've noticed that a funny thing tends to happen when we start talking about audiobooks: The same few titles get...
52 likes · 14 comments
“test3 defines the sin function as a keyword argument, with its default value being a reference to the sin function within the math module. While we still do need to find a reference to this function within the module, this is only necessary when the test3 function is first defined. After this, the reference to the sin function is stored within the function definition as a local variable in the form of a default keyword argument. As mentioned previously, local variables do not need a dictionary lookup to be found; they are stored in a very slim array that has very fast lookup times. Because of this, finding the function is quite fast! While these effects are an interesting result of the way namespaces in Python are managed, test3 is definitely not “Pythonic.” Luckily, these extra dictionary lookups only start to degrade performance when they are called a lot (i.e., in the innermost block of a very fast loop, such as in the Julia set example). With this in mind, a more readable solution would be to set a local variable with the global reference before the loop is started. We’ll still have to do the global lookup once whenever the function is called, but all the calls to that function in the loop will be made faster. This speaks to the fact that even minute slowdowns in code can be amplified if that code is being run millions of times. Even though a dictionary lookup may only take several hundred nanoseconds, if we are looping millions of times over this lookup it can quickly add up. In fact, looking at Example 4-10 we see a 9.4% speedup simply by making the sin function local to the tight loop that calls it.” 0 likes
“It is worth noting that performing CPU and memory profiling on your code will probably start you thinking about higher-level algorithmic optimizations that you might apply. These algorithmic changes (e.g., additional logic to avoid computations or caching to avoid recalculation) could help you avoid doing unnecessary work in your code, and Python’s expressivity helps you to spot these algorithmic opportunities.” 0 likes
More quotes…