forked from learnpython/learnpython.in.ua
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptimization.yml
More file actions
34 lines (24 loc) · 1.98 KB
/
Copy pathoptimization.yml
File metadata and controls
34 lines (24 loc) · 1.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
title: Оптимизация
active: 0
order: 3
**Оптимизация Python кода**
Чтобы делать высокоэффективный код нужно уметь пользоваться профайлером,
читать байткод, выполнять алгоритмическую оптимизацию и писать Python C
Extensions если алгоритмически выжать уже ничего не получается.
Всем этим мы и займемся.
**Требования к участникам:** уметь программировать на Python и C. Последнее
очень желательно хотя бы на уровне остаточных знаний из институтского курса —
половина рассматриваемого кода будет на С.
Python 3.3, операционная система любая.
**Краткое содержание курса:**
* Профилирование через cProfile и timeit, анализ измеренных результатов.
Рассматриваем из чего состоит функция с точки зрения Python и добираемся до
байткода. Несколько простых вариантов оптимизации.
* Создаём простейший модуль Python C Extension.
* Учимся делать Python классы на C.
* Теперь пишем на Cython и радуемся как легко всё получается. В нагрузку ctypes.
* Показываю, как устроена виртуальная CPython машина изнутри. Интерпретаторы,
потоки, стек. GIL. Как PyEval_EvalFrameEx исполняет байткод.
Курс состоит из пяти занятий. Лектор: **Андрей Светлов**.
Каждое занятие длится 2 часа.
Стоимость занятия: 300 грн.