1.1. About Agenda

  • Training course: 9:00 - 17:00

  • Lunch break: 13:15 - 14:00

  • 10 min break every one/one-and-half hour

1.1.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.1.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