1.2. About Agenda

  • 8:59 - meeting

  • 9:00 - training day start

  • 10:20-10:30 - coffee break (10 min)

  • 11:50-12:00 - coffee break (10 min)

  • 13:15-14:00 - lunch break (45 min)

  • 15:20-15:30 - coffee break (10 min)

  • 17:00 - training day end

1.2.1. Day 1

  1. Wprowadzenie:

    • Projekt Faster CPython

    • Zmiany w ostatnich wersjach języka Python

    • Architektura procesora i pamięci

    • Pojęcie latencji

    • Pojęcia złożoności kodu (pamięciowa, obliczeniowa, cyklomatyczna, kognitywna)

  2. Optymalizacja:

    • Złożoność obliczeniowa operacji na wbudowanych typach danych

    • Ręczna i automatyczna identyfikacja złożonego kodu

    • Testy obciążeniowe

    • Transpilacja kodu Python do C

  3. Tuning wydajnościowy:

    • Techniki pomiaru wydajności kodu

    • Microbenchmarking i jego pułapki

    • Identyfikacja wąskich gardeł

    • Wizualizacja wyników

1.2.2. Day 2

  1. Profilowanie:

    • Profiling CPU

    • Profiling pamięci

  2. Wprowadzenie do współbieżności i przetwarzania równoległego:

    • GIL - Global Interpreter Lock

    • Programowanie wieloprocesowe

    • Programowanie wielowątkowe

    • Programowanie asynchroniczne