File tree Expand file tree Collapse file tree 2 files changed +51
-0
lines changed
Expand file tree Collapse file tree 2 files changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ # Домашнее задание #08 (память, профилирование)
2+
3+ ### 1. Сравнение использования weakref и слотов
4+ Нужно придумать свои типы с несколькими атрибутами:
5+ - класс с обычными атрибутами
6+ - класс со слотами
7+ - класс с атрибутами weakref
8+
9+ Для каждого класса создается большое число экземпляров и замеряется (сравнивается):
10+ - время создания пачки экземпляров;
11+ - время чтения/изменения атрибутов пачки экземпляров.
12+
13+ Результаты замеров оформляются скриншотами c описанием и выводом.
14+
15+ ### 2. Профилирование
16+ Провести профилирование вызовов и памяти для кода из пункта 1.
17+
18+ Результаты оформляются скриншотами c описанием и выводом.
19+
20+ ### 3. Декоратор для профилирования
21+ Применение декоратора к функции должно выполнять прoфилирование (cProfile) всех вызовов данной функции.
22+ Вызов метода ` .print_stat() ` должен выводить единую таблицу со статистикой профилирования суммарно по всем вызовам функции.
23+
24+
25+ ``` py
26+ def profile_deco (...):
27+ ...
28+
29+
30+ @profile_deco
31+ def add (a , b ):
32+ return a + b
33+
34+
35+ @profile_deco
36+ def sub (a , b ):
37+ return a - b
38+
39+
40+ add(1 , 2 )
41+ add(4 , 5 )
42+ sub(4 , 5 )
43+
44+
45+ add.print_stat() # выводится результат профилирования суммарно по всем вызовам функции add (всего два вызова)
46+ sub.print_stat() # выводится результат профилирования суммарно по всем вызовам функции sub (всего один вызов)
47+ ```
48+
49+ ### 4. Зеленый пайплайн в репе
50+ Обязательно: flake8, pylint.
51+ Опционально можно добавить другие инструменты, например, mypy и black.
You can’t perform that action at this time.
0 commit comments