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