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 wersjach 3.11, 3.12, 3.13, 3.14...

    • 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

1.2.2. Day 2

  1. Tuning wydajnościowy:

    • Techniki pomiaru wydajności kodu

    • Microbenchmarking i jego pułapki

    • Profiling CPU

    • Profiling pamięci

    • Identyfikacja wąskich gardeł

    • Wizualizacja wyników

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

    • GIL - Global Interpreter Lock

    • Programowanie wieloprocesowe

    • Programowanie wielowątkowe

    • Programowanie asynchroniczne