SlideShare a Scribd company logo
1 of 55
Download to read offline
..
Проблема
Теория
Инструменты
Решения
.
..На что уходит
память?
..
Проблема
Теория
Инструменты
Решения
Проблема утечка памяти
...
2
..
Проблема
Теория
Инструменты
Решения
Проблема утечка памяти
...
3
..
Проблема
Теория
Инструменты
Решения
”
Решение“ проблемы
...
4
..
Проблема
Теория
Инструменты
Решения
Проблема: производительность
...
5
..
Проблема
Теория
Инструменты
Решения
Ограничение размера задачи
Объем памяти может ограничить максимальный размер
решаемой задачи
Изменить алгоритм так, чтобы не все держать в памяти,
часто сложно
...
6
..
Проблема
Теория
Инструменты
Решения
Делаем ненужную работу
Тратим лишнюю память и:
не в лезаем влезаем в кэш процессовра
делаем лишнюю работы по выделению и сборке памяти
...
7
..
Проблема
Теория
Инструменты
Решения
I/O bound?
Часто можно превратить I/O bound задачу в CPU или Memory
bound, и увеличить производительность
...
8
..
Проблема
Теория
Инструменты
Решения
Ограничение числа процессов
Хотим использовать все ядра сервера
...
9
..
Проблема
Теория
Инструменты
Решения
Ограничение числа процессов
Хотим использовать все ядра сервера
Типичный сервер:
8-256 Гб памяти
4-128 ядер, 1-2 процесса на ядро
0.5-5 Гб памяти на процесс
...
10
..
Проблема
Теория
Инструменты
Решения
Что такое память
Один из основных ресурсов
В ней храняться текущие данные программы, она быстра
и конечна
Скорость доступа: L1: 0.5 ns, RAM: 100 ns, SSD: 150 000 ns
...
11
..
Проблема
Теория
Инструменты
Решения
Что с ней происходит
Выделение (плюс взаимодействие с ОС)
Чтение/запись
Освобождение (сборщик мусора - GC)
...
12
..
Проблема
Теория
Инструменты
Решения
Как она используется
class Point(object):
def __init__(self, x, y, vx, vy):
self.x = x
self.y = y
self.vx = vx
self.vy = vy
...
13
..
Проблема
Теория
Инструменты
Решения
Как она используется: объект
...
14
..
Проблема
Теория
Инструменты
Решения
Как она используется: список
...
15
..
Проблема
Теория
Инструменты
Решения
Сборка мусора
освобождение объектов, к которым у нас уже нет
доступа
бесконечная память - сборщик не был бы нужен/заметен
Пример:
s = 0.0
for _ in xrange(10000000):
s = s + 0.34
...
16
..
Проблема
Теория
Инструменты
Решения
Сборка мусора: CPython
reference coun ng: если на объект нет ссылок, то память
можно освободить
но нужно уметь собирать и отдельно висящие циклы
только если в циклах нет объектов с __del__ (см.
gc.garbage)
...
17
..
Проблема
Теория
Инструменты
Решения
Циклы: пример
class Node:
def __init__(self, parent=None):
self.parent = parent
self.children = []
a = Node()
a.children.append(Node(parent=a))
a = 1
...
18
..
Проблема
Теория
Инструменты
Решения
Циклы: __del__
class Node:
def __init__(self, parent=None):
self.parent = parent
self.children = []
def __del__(self):
pass
a = Node(); a.children.append(Node(parent=a))
a = 1
...
19
..
Проблема
Теория
Инструменты
Решения
Циклы: __del__
class Node:
def __init__(self, parent=None):
self.parent = parent
self.children = []
def __del__(self):
pass
a = Node(); a.children.append(Node(parent=a))
a = 1
>>> gc.collect(); gc.garbage
[<__main__.Node instance at 0x10a0dd5f0>,
<__main__.Node instance at 0x10a0dd680>]
...
20
..
Проблема
Теория
Инструменты
Решения
Освобождение памяти
...
21
..
Проблема
Теория
Инструменты
Решения
Освобождение памяти
...
22
..
Проблема
Теория
Инструменты
Решения
Освобождение памяти
...
23
..
Проблема
Теория
Инструменты
Решения
(не)Освобождение памяти
...
24
..
Проблема
Теория
Инструменты
Решения
(не)Освобождение памяти
...
25
..
Проблема
Теория
Инструменты
Решения
(не)Освобождение памяти
...
26
..
Проблема
Теория
Инструменты
Решения
Освобождение памяти
”
Improving Python's Memory Allocator“ Evan Jones
http://www.evanjones.ca/memoryallocator/
...
27
..
Проблема
Теория
Инструменты
Решения
Фрагментация
...
28
..
Проблема
Теория
Инструменты
Решения
Инструменты
Сколько памяти используется?
Какие объекты занимают память?
Почему они занимают память?
...
29
..
Проблема
Теория
Инструменты
Решения
Статистика ОС
включает память C exten ons
включает shared libraries
дополнительная информация: vmmap, pmap -d
import resource
resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
...
30
..
Проблема
Теория
Инструменты
Решения
Статистика ОС
starting vlist_blocker
...
finished vlist_blocker in 11.8649010658 s
vlist_blocker: memory
before: 32 440 k
after: 412 016 k
delta: 379 576 k
...
31
..
Проблема
Теория
Инструменты
Решения
heapy
CPython 2.x
overhead: нет (не считая времени на анализ)
анализ используемой памяти
сложно понять причину/источник
...
32
..
Проблема
Теория
Инструменты
Решения
heapy
from guppy import hpy
hp = hpy()
hp.setrelheap()
...
...
h = hp.heap()
print h
...
33
..
Проблема
Теория
Инструменты
Решения
heapy
8343695 objects. Total size = 401971888 bytes.
Index Count % Size % Cumulative % Kind (class / dict o
0 3337416 40 160M 40 160M 40 datetime.datetime
1 1668744 20 146M 37 307M 76 tuple
2 3336983 40 80M 20 387M 96 int
3 25 0 14M 4 401M 100 list
4 144 0 56K 0 401M 100 unicode
5 147 0 52K 0 401M 100 dict (no owner)
...
...
34
..
Проблема
Теория
Инструменты
Решения
heapy
(Pdb) print h[1].byid
1668748 <tuple> objects. Total size = 146849176 bytes.
Index Size % Cumulative % Address*Length
0 88 0.0 88 0.0 0x10c141050*4
...
9 88 0.0 88 0.0 0x10c141368*4
<1668738 more rows. Type e.g. '_.more' to view.>
(Pdb) print h[1].byid[0].theone
(108, 108, datetime.datetime(1, 1, 1, 0, 0),
datetime.datetime(9999, 12, 31, 23, 59, 59, 999999))
...
35
..
Проблема
Теория
Инструменты
Решения
tracemalloc
CPython 3.4 (есть порт для 2.7)
overhead: ~2x и память и время
отслеживание выделения памяти с точностью до
строчки и traceback
но как и с heapy, нужно
”
поймать момент“
...
36
..
Проблема
Теория
Инструменты
Решения
tracemalloc
[ Top 10 ]
django/db/utils.py:106:
size=344 MiB, count=8343028, average=43 B
documents/utils.py:47:
size=13.3 MiB, count=1, average=13.3 MiB
<frozen importlib._bootstrap>:656:
size=59.7 KiB, count=520, average=118 B
django/db/backends/postgresql_psycopg2/operations.py:21
size=27.6 KiB, count=77, average=367 B
...
...
37
..
Проблема
Теория
Инструменты
Решения
Утечка
44 | values = []
45 | for d in _blocks_iterator(
46 | blocks, vlist, field_name, model, log):
47 | values.append(d)
48 | yield d
...
38
..
Проблема
Теория
Инструменты
Решения
tracemalloc
[ Top 10 ]
django/db/utils.py:106:
size=160 KiB, count=2050, average=80 B
<frozen importlib._bootstrap>:656:
size=59.1 KiB, count=515, average=118 B
django/db/backends/postgresql_psycopg2/operations.py:21
size=56.2 KiB, count=176, average=327 B
django/db/backends/util.py:74:
size=39.0 KiB, count=184, average=217 B
django/db/backends/util.py:76:
size=10.9 KiB, count=177, average=63 B
...
39
..
Проблема
Теория
Инструменты
Решения
”
Багфиксы“
просто багфиксы
weakref
генераторы/сопрограммы
алгоритмы
...
40
..
Проблема
Теория
Инструменты
Решения
Оптимизации: объекты
class Point(object):
def __init__(self, x, y, vx, vy):
self.x = x
self.y = y
self.vx = vx
self.vy = vy
points = [Point(x=random(), y=random(),
vx=random(), vy=random())
for _ in xrange(n)]
...
41
..
Проблема
Теория
Инструменты
Решения
А в памяти
...
42
..
Проблема
Теория
Инструменты
Решения
__slots__
class Point(object):
__slots__ = ['x', 'y', 'vx', 'vy']
def __init__(self, x, y, vx, vy):
self.x = x
self.y = y
self.vx = vx
self.vy = vy
...
43
..
Проблема
Теория
Инструменты
Решения
namedtuple
Point = namedtuple('Point', ['x', 'y', 'vx', 'vy'])
...
44
..
Проблема
Теория
Инструменты
Решения
Списки
Для примитивных типов:
array.array
numpy.array
...
45
..
Проблема
Теория
Инструменты
Решения
struct
class Point(object):
__slots__ = ['_data']
def __init__(self, x, y, vx, vy):
self._data = struct.pack(
'=dddd', x, y, vx, vy)
@property
def x(self):
return struct.unpack(
'=dddd', self._data)[0]
...
46
..
Проблема
Теория
Инструменты
Решения
cffi
from cffi import FFI
ffi = FFI()
ffi.cdef("""
typedef struct {
double x, y, vx, vy;
} Point;
""")
points = ffi.new("Point[]", 10000000)
...
47
..
Проблема
Теория
Инструменты
Решения
Сравнение
...
48
..
Проблема
Теория
Инструменты
Решения
Общая память
mmap: https://docs.python.org/2/library/mmap.html
mul processing: https:
//docs.python.org/2/library/multiprocessing.html#
sharing-state-between-processes
http://stackoverflow.com/a/5550156/217088
...
49
..
Проблема
Теория
Инструменты
Решения
Архитектурные решения
вынос жадных до памяти операций в отдельный процесс
(mul processing, Celery, ..., отдельный сервис)
вынос общей памяти в отдельный процесс/БД (redis,
memcached, ..., отдельный сервис)
...
50
..
Проблема
Теория
Инструменты
Решения
Ссылки: обзор
https://fedorahosted.org/pulp/wiki/Debugging/
MemoryLeaks
http://stackoverflow.com/questions/110259/
which-python-memory-profiler-is-recommended
...
51
..
Проблема
Теория
Инструменты
Решения
Ссылки: внутренности CPython
Improving Python's Memory Allocator:
http://www.evanjones.ca/memoryallocator/
Stepping Through CPython:
http://www.youtube.com/watch?v=XGF3Qu4dUqk
gc: https://docs.python.org/2/library/gc.html
Why Python is Slow: Looking Under the Hood:
http://jakevdp.github.io/blog/2014/05/09/
why-python-is-slow/
Python’s Innards: http://tech.blog.aknin.name/
category/my-projects/pythons-innards/
...
52
..
Проблема
Теория
Инструменты
Решения
Ссылки: оптимизации в PyPy
объекты: http://morepypy.blogspot.ru/2010/11/
efficiently-implementing-python-objects.html
списки: http://morepypy.blogspot.ru/2011/10/
more-compact-lists-with-list-strategies.html
...
53
..
Проблема
Теория
Инструменты
Решения
Ссылки: инструменты
Heapy:
http://guppy-pe.sourceforge.net/
http:
//smira.ru/wp-content/uploads/2011/08/heapy.html
Meliae:
http://jam-bazaar.blogspot.ru/2009/11/
memory-debugging-with-meliae.html
http://jam-bazaar.blogspot.ru/2010/08/
step-by-step-meliae.html
...
54
..
Проблема
Теория
Инструменты
Решения
Ссылки: tracemalloc
Документация: https:
//docs.python.org/3/library/tracemalloc.html
PEP: http://legacy.python.org/dev/peps/pep-0454/
...
55

More Related Content

Similar to На что уходит память - Константин Лопухин, PyCon RU 2014

«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Levon Avakyan
 
алгоритмы конспект урока игры
алгоритмы конспект урока игрыалгоритмы конспект урока игры
алгоритмы конспект урока игрыGala Timofeeva
 
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...Mail.ru Group
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.Roman Brovko
 
алгоритмы конспект урока игры
алгоритмы конспект урока игрыалгоритмы конспект урока игры
алгоритмы конспект урока игрыGala Timofeeva
 
Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?PyNSK
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Fwdays
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonovComputer Science Club
 
Производительность в Django
Производительность в DjangoПроизводительность в Django
Производительность в DjangoMoscowDjango
 
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья ШишковC++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишковcorehard_by
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применениеDEVTYPE
 
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Yandex
 
Память в Java. Garbage Collector
Память в Java. Garbage CollectorПамять в Java. Garbage Collector
Память в Java. Garbage CollectorOlexandra Dmytrenko
 
брошюра эсо
брошюра эсоброшюра эсо
брошюра эсоbukish
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) it-people
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кодаAndrey Karpov
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода Pavel Tsukanov
 

Similar to На что уходит память - Константин Лопухин, PyCon RU 2014 (20)

«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 
алгоритмы конспект урока игры
алгоритмы конспект урока игрыалгоритмы конспект урока игры
алгоритмы конспект урока игры
 
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...CV в пайплайне распознавания ценников товаров: трюки и хитрости  Николай Масл...
CV в пайплайне распознавания ценников товаров: трюки и хитрости Николай Масл...
 
Лекция 8. Итераторы, генераторы и модуль itertools.
 Лекция 8. Итераторы, генераторы и модуль itertools. Лекция 8. Итераторы, генераторы и модуль itertools.
Лекция 8. Итераторы, генераторы и модуль itertools.
 
алгоритмы конспект урока игры
алгоритмы конспект урока игрыалгоритмы конспект урока игры
алгоритмы конспект урока игры
 
Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?Магия в Python: Дескрипторы. Что это?
Магия в Python: Дескрипторы. Что это?
 
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
Aleksei Milovidov "Let's optimize one aggregate function in ClickHouse"
 
20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov20130429 dynamic c_c++_program_analysis-alexey_samsonov
20130429 dynamic c_c++_program_analysis-alexey_samsonov
 
1
11
1
 
Производительность в Django
Производительность в DjangoПроизводительность в Django
Производительность в Django
 
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья ШишковC++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
C++ CoreHard Autumn 2018. Заглядываем под капот «Поясов по C++» - Илья Шишков
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применение
 
Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»Владимир Варанкин — «БЭМ»
Владимир Варанкин — «БЭМ»
 
Память в Java. Garbage Collector
Память в Java. Garbage CollectorПамять в Java. Garbage Collector
Память в Java. Garbage Collector
 
брошюра эсо
брошюра эсоброшюра эсо
брошюра эсо
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
 
статический анализ кода
статический анализ кодастатический анализ кода
статический анализ кода
 
Статический анализ кода
Статический анализ кода Статический анализ кода
Статический анализ кода
 
Tbb лр1
Tbb   лр1Tbb   лр1
Tbb лр1
 

More from it-people

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Coit-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндексit-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalrit-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАНit-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банкit-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндексit-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognicianit-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...it-people
 
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...it-people
 

More from it-people (20)

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
 

На что уходит память - Константин Лопухин, PyCon RU 2014