Хороші програмісти знають інструменти, що використовують, найкращі з них можуть мислити про виконання програми на різних рівнях — від мови програмування до операційної системи та процесора. Ці знання дозволяють знаходити вузькі місця в коді, писати коректні, надійні асинхронні та багатопоточні програми, приймати правильні архітектурні рішення.
Курс є важливим для подальшого вивчення Operating Systems, Compilers та Databases i потребує знань з Aлгоритмів.
- старт 19 січня. тривалість 3 місяці. 15 студентів
- Вебінар вівторок та п’ятниця о 19:00 через Zoom
- Відео запис та матеріали заняття надаються
CPU
- Implement a simple JVM. Unravel the mysteries of how CPU works
- Чи всі елементарні операції однаково швидкі?
- Як Twitter та Facebook пришвидшили продакшн код в 100 разів?
Cache
- Speed up production code by reducing pointer chasing
- Cache-oblivious алгоритми та структури даних
- Measuring cache performance
- Реалізуємо бібліотеку для I/O з файлами
Bits and Bytes
- Engineering fast indexes with bitmaps
- Деталі представлення та нюанси роботи з int, float, string, ptrs
- Як влаштований variable length int під капотом у Protobuf?
- Unicode або як Twitter обмежує розмір твіта?
Memory
- Реалізуємо Memory allocator та Garbage collector
- Масиви та структури. Тонкощі реалізації list в Python
- Alignment даних та вплив на пам’ять і швидкодію
- Сегменти пам’яті. Як влаштований Stack і Heap?
Low-level optimizations
- Пришвидшення за рахунок SIMD, ILP та Branch prediction
- Intro to assembler. Read and write simple programs
- Optimizing binary search and other classic algorithms
- Reverse-engineering. Знешкодимо binary bomb розшифрувавши exe файл
Operating system
- Mysteries of Virtual Memory & Page Tables unlocked
- Key features OS provide for users
- System calls and context switches in depth
Processes
- Write your own Shell program
- Inter-process Communication
- Fork, Exec, Pipe
Multithreading and Concurrency
- Threads vs. Processes vs. Coroutines: dive deep into the details
- Data races and Synchronization objects. How to implement a mutex?
- Напишемо Thread pool та виправимо багато конкурентних багів
Більше інформації на сайті курсу: www.csosvita.com/performance
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів