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
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)
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
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
Wprowadzenie do współbieżności i przetwarzania równoległego:
GIL - Global Interpreter Lock
Programowanie wieloprocesowe
Programowanie wielowątkowe
Programowanie asynchroniczne