IT-professional

Enhancing Python Performance

Python is a slow language but there are many ways to squeeze performance out of it. This hands-on course looks at techniques and tools for speeding up your Python apps.

Course objectives

This is an advanced course that assumes familiarity with Python programming. However, it is applicable to all Python communities (e.g., web development, data science, automation).

  • Identify bottlenecks in your apps
  • Use concurrent execution to make better use of your computer's resources
  • Speed up numerical apps using NumPy
  • Gain performance improvements using JIT compilation

Target audience

This course is for experience Python programmers looking to expand on their Python experience.

Prerequisites

This is an advanced course that assumes familiarity with Python programming. However, it is applicable to all Python communities (e.g., web development, data science, automation).

Outline

Profiling

  • Measuring execution time
  • cProfile
  • py-spy

Concurrency

  • Concurrency in Python
  • threading
  • asyncio
  • multiprocessing

Improving performance

  • Basic optimisations
  • NumPy
  • Numba
  • JAX
  • PyPy
  • Cython