Contribute Media
A thank you to everyone who makes this possible: Read More

Faster Python Programs Through Optimization

Description

Faster Python Programs Through Optimization

Mike Müller

Although Python programs may be slow for certain types of tasks, there are many different ways to improve performance. This tutorial will introduce optimization strategies and demonstrate techniques to implement them. Another of the objectives of this course is to give participants the ability to decide what might be the optimal solution for a certain performance problem. Participants are strongly recommended to bring laptops because all techniques are introduced with examples and exercises.

Intended Audience

Python programmers with intermediate knowledge.

Class Outline

  • How Fast is Fast Enough?
  • Optimization Guidelines
    • Premature optimization
    • Optimization rules
    • Seven steps for incremental optimization
  • Optimization strategy
    • Measuring in stones
    • Profiling CPU usage
    • Profiling memory usage
  • Algorithms and Anti-patterns
    • String Concatenation
    • List and Generator Comprehensions
    • The Right Data Structure
    • Caching
  • The Example
  • Testing Speed
  • Pure Python
  • Meet Psyco, the JIT
  • Numpy for Numeric Arrays
  • Using multiple CPUs with pyprocessing/multiprocessing
  • Combination of optimization strategies
  • Results of Different Example Implementations

The following third-party packages are needed:

  • psyco (version 1.5.2 or higher)
  • numpy (version 1.2 or higher)
  • pyprocessing (2.5 or lower only)
  • Guppy_PE framework

Details

Improve this page