Faster Python Programs through Optimization
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.
Venue / Time
Seminar Room 2.5 (Near to Ngee Ann Kongsi Auditorium)
2.00 pm - 6.00 pm (Break 3.45 - 4.15)
Intended Audience
Python programmers with intermediate knowledge.
Requirements
All participants should bring laptops with Linux, Windows, or Mac OS. Python 2.6, 2.5 or Python 2.4 need to be installed as well as an editor or IDE. 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
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
Trainer – Mr Mike Müller
Mike Müller lives in Leipzig, Germany and works as a consultant, programmer and trainer. He programs scientific software in Python and other languages. He teaches Python since 2004 and since 2006 at the Python Academy. His courses cover introductions to Python as well as special topics such as extensions or thread programming. Being an engineer who also works in research projects, he uses numerous scientific Python packages on a daily basis and, therefore, also offers a course Python for Scientist and Engineers. When he does not program or teach, he spends time with his wife and his two kids or works out with weights and swims.
Presenter's Previous Experience
Mike gave two tutorials at PyCon 2007 (PyCon 2007_I, PyCon 2007_II), two at PyCon 2008 (PyCon 2008_I, PyCon 2008_II) as well as two tutorials at PyCon 2009 (PyCon 2009_I, PyCon 2009_II).














