Нестандартные способы манипуляции памятью в Python Офлайн 2021
Делать research и обрабатывать большие массивы данных на Python c одной стороны удобно, но с другой стороны из опыта отправки pipeline’ов в продакшн следует, что возникает целый ряд проблем:
* потребление сотни гигабайт RAM из-за некомпактного хранения данных в памяти;
* длительная обработка больших коллекций;
* низкая скорость загрузки и сохранения больших коллекций в память и на диск.
Пути решения проблем, связанных с особенностями Python, в частности с аллокацией и управлением памятью в процессе работы pipeline и его частей, будут рассмотрены в моем докладе. Один из способов решения проблемы — это переписать эвристики в PyMalloc, но это путь самурая. Чтобы решить проблемы, надо разобраться в том, как работает PyMalloc и устроена иерархия памяти в Python.
Я расскажу, как организовать off-heap для Python, покажу способы укладывания Python-классов компактнее, чем это делает Arena allocator, рассмотрю бинарную сериализацию без pickle, которая, не теряя интерфейса pickle, дает нам новые возможности.
Последние 10 лет занимается исследованием новых подходов и созданием решений в областях рекламы, финтеха и ML.
В область интересов входят вопросы разработки распределенных систем, параллельной и конкурентной обработки информации.
Улучшает мир посредством opensource. cyberduckninja.com