Faster Python Programs through Optimization

A session at PyCon US 2012

  • Mike Müller

Wednesday 7th March, 2012

9:00am to 12:20pm (PST)

This tutorial provides an overview of techniques to improve the performance of Python programs. The focus is on concepts such as profiling, difference of data structures and algorithms as well as a selection of tools and libraries that help to speed up Python.

Objective

This tutorial provides an overview of techniques to improve the performance of Python programs. The focus is on concepts such as profiling, diffrence of data structures and algorithms as well as a selection of tools an libraries that help to speed up Python.

Intended Audience

Python programmers who would like concepts to improve performance.

Audience Level

Programmers with good Python knowledge.

Prerequisites

Please bring your laptop with the operating system of your choice (Linux, Mac OS X, Windows). In addition to Python 2.6 or 2.7, we need:

Method

This is a hands-on course. Students are strongly encouraged to work along with the trainer at the interactive prompt. There will be exercises the students need to do on their own. Experience shows that this active involvement is essential for an effective learning.

Outline

  • How fast is fast enough? (10 min)
  • Optimization guidelines (10 min)
  • Premature optimization
  • Optimization rules
  • Seven steps for incremental optimization
  • Optimization strategy (30 min)
  • Measuring in stones
  • Profiling CPU usage
  • Profiling memory usage
  • Algorithms and Anti-patterns (40 min)
  • String concatenation
  • List and generator comprehensions
  • The right data structure
  • Caching
  • The example (5 min)
  • Testing speed (5 min)
  • Pure Python (15 min)
  • Meet Psyco, the JIT (5 min)
  • Using PyPy (15 min)
  • NumPy for numeric arrays (10 min)
  • Using multiple CPUs with multiprocessing (20 min)
  • Combination of optimization strategies (10 min)
  • Results of different example implementations (5 min)

About the speaker

This person is speaking at this event.
Mike Müller

Next session in D1

1:20pm Django in Depth by James Bennett

Coverage of this session

Sign in to add slides, notes or videos to this session

Tell your friends!

When

Time 9:00am12:20pm PST

Date Wed 7th March 2012

Short URL

lanyrd.com/spbwf

Official session page

us.pycon.org/…e/presentation/245/

View the schedule

Share

Topics

See something wrong?

Report an issue with this session