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