- PVSM.RU - https://www.pvsm.ru -

Python Meetup: ноябрьская встреча

image

В конце ноября в Минске прошла очередная встреча Python Meetup. Четыре интереснейших доклада на около-python-овские темы, авторитетные спикеры. Кстати, впервые к нам приехал спикер не из Беларуси — это был Андрей Власовский, опытный докладчик из компании JetBrains.

В ноябрьском митапе мы рассмотрели опциональную типизацию в Python, асинхронное распределенное выполнение задач, введение в GIL и новый GIL, а также использование gevent для эмуляции высокой нагрузки.
Видео всех докладов, как и ссылки на презентации, можно найти под катом.

1. Введение в GIL и новый GIL [1], Андрей Нехайчик gnomeby [2], Wargaming.net | COOO «Гейм Стрим»

— Треды, отличия от потоков.
— Как использовать треды.
— Тестирование производительности (и облом).
— Представление GIL, как он работает.
— Освобождение по I/O, 100 тиков.
— Зачем нужен GIL.
— Проблемы переключения потоков (медленный захват).
— Проблема 100 тиков.
— Проблема отсутствия приоритетов и их типов.
— Новый GIL, 5 миллисекунд, drop_request.
— Когда drop_request не работает.
— Соревнование CPU и I/O тредов.
— Как борются с GIL: тезисы о numpy, Jython, multiprocessing.

2. Использование gevent для эмуляции высокой нагрузки [3], Александр Колесень, SiliconMint

Обязательное действие перед выпуском более-менее серьёзного проекта — тестирование производительности. На высоконагруженных проектах нужно точно знать, какую нагрузку они могут выдержать, причём заранее. Следовательно, нужен способ эмуляции высокой конкурентности, желательно чтобы в теории он позволял полностью загрузить канал траффиком. К тому же, неплохо было бы, чтобы для этого не нужно было использовать несколько десятков серверов. В докладе рассказано об опыте использования gevent для подобной задачи, что позволяет бы обойтись одним t1.micro инстансом, с которого выполняется тестирование.

3. Асинхронное распределенное выполнение задач. Stdlib, Celery, RQ и собственные велосипеды [4], Роман Иманкулов, doist.io

Когда необходимо заставить веб-приложение выполнить тяжелую работу без ухудшения user experience, или нужно по-быстрому собрать кластер на коленке, возникает потребность в распределенном выполнении очередей команд. В докладе рассмотрены варианты организации таких очередей подручными средствами, выяснено, чем так хорош Celery, есть ли у него достойные альтернативы, и как написать рабочий менеджер очередей в тридцать строчек кода.

4. Опциональная типизация в Python [5], Андрей Власовских, JetBrains

С появлением новых библиотек и диалектов для типизации Python вновь оживилась
дискуссия о необходимости и способах введения опциональных типов в Python. В докладе рассказано о текущем состоянии этой области, в том числе и об инициативах JetBrains.

Автор: Wargaming

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/50934

Ссылки в тексте:

[1] Введение в GIL и новый GIL: http://www.slideshare.net/MinskPythonMeetup/gil-gil-29245130

[2] gnomeby: http://habrahabr.ru/users/gnomeby/

[3] Использование gevent для эмуляции высокой нагрузки: http://www.slideshare.net/MinskPythonMeetup/ss-29245177

[4] Асинхронное распределенное выполнение задач. Stdlib, Celery, RQ и собственные велосипеды: http://www.slideshare.net/MinskPythonMeetup/stdlib-celery-rq

[5] Опциональная типизация в Python: http://blog.pirx.ru/media/files/2013/python-optional-typing/#1

[6] Источник: http://habrahabr.ru/post/206256/