Optymalizacja kodu w C++
Podczas warsztatu zapewniamy dostęp do kawy, herbaty, wody. W porze obiadowej zapewniamy pizzę w wersji mięsnej lub wegeteriańskiej.
W trakcie zajęć uczestnicy korzystają z własnych laptopów.
Czego się nauczysz?
Nauczymy się współpracować z kompilatorem tak, aby stał się naszym sprzymierzeńcem w walce o prędkość wykonywania kodu.
Poznamy skuteczne strategie i techniki optymalizacji, które przetestujemy na praktycznych przykładach pisząc, testując i usprawniając kod na żywo podczas warsztatu.
Cały warsztat jest cyklem kilkunastu krótkich ćwiczeń praktycznych poprzedzonych zwięzłymi wstępami teoretycznymi.
Dla kogo jest ten warsztat?
Osoby ze znajomością języka C++ na poziomie podstawowym lub średnio-zaawansowanym chcące dowiedzieć się czegoś nowego. Programiści systemów wbudowanych, osoby aspirujące do lub pracujące w środowisku Game Dev.
Prowadzący
Software Developer z 4 letnim doświadczeniem. Pracował w Holandii jako Embedded Software Engineer, pisząc kod w C i C++ na urządzenia wbudowane, roboty oraz autobusy autonomiczne. Wielki fan nowoczesnych standardów C++ i dobrych praktyk programistycznych. Obecnie tworzy systemy backendowe w AWS. Pasjonat nauczania i dzielenia się wiedzą. Po pracy żeglarz i kitesurfer.
Program warsztatów
1. Filozofia optymalizacji
– Dlaczego optymalizować?
– Kiedy optymalizować?
– Kiedy NIE optymalizować?
– Hierarchia procesu optymalizacji
2. Kompilator
– Co ostatnio zrobił dla mnie mój kompilator?
– Techniki optymalizacji bez ingerencji w kod źródłowy
3. Profilowanie kodu
– Problemy z oceną i pomiarem prędkości wykonywania programu
– Narzędzia i techniki profilowania kodu
– Wizualizacja profilu działania programu
– Wykrywanie zatorów i wąskich gardeł w kodzie
4. Optymalizacja kodu C++
– Strategie i techniki optymalizacji
– Pamięć alokowana statycznie i dynamicznie
– Pamięć cache
– Pętle, instrukcje warunkowe
– Jak wykorzystać C++11 żeby przyśpieszyć mój kod
– Techniki optymalizacji algorytmów
– STL – Jak korzystać mądrzej
Uwaga
Zapisy na wybrany warsztat zostały zakończone.