Сколько памяти займет скрипт на питоне?

Нужно сравнить два массива по 7 000 000 элементов в каждом. Элементы - 9-значные числа. И отличающиеся значения вынести в новый массив (около 10 000), Сколько ориентировочно памяти отъест такой скрипт?
  • Вопрос задан
  • 2585 просмотров
Решения вопроса 2
Kademn
@Kademn
Злой
Список хранит ссылки на переменные в памяти, а значит список длиной N в 32-х битных системах будет иметь размер (2*2)*N, а в 64-х битных (4*2)*N
>>> from sys import getsizeof

>>> l = list()
>>> print getsizeof(l)
32 (в 32 битной системе)
64 (в 64 битной системе)

Значит искомая величина 32 + (2*2)*N (в 32 битной системе), 64 + (4*2)*N (в 64 битной системе), где N - длина списка.
Но список хранит указатели, а значит место займут еще и сами данные. В вашем случае данные имеют тип integer
>>> from sys import getsizeof as gs
>>> a = int()
>>> print gs(a)
12 (в 32 битной системе)
24 (в 64 битной системе)

Значит памяти всего израсходуется
32 + (2*2)*N + N*12 (в 32 битной системе)
64 + (4*2)*N + N*24 (в 64 битной системе)

Для списка из 7млн чисел имеем:
32 + (2*2)*7000000 + 7000000*12 = 112000032 байт = 109375 Кбайт = 106.8 Мбайт
64 + (4*2)*7000000 + 7000000*24 = 224000064 байт = 218750 Кбайт = 213.6 Мбайт
Ответ написан
Комментировать
kivsiak
@kivsiak
software engineer
Вот тут описанно как можно сделать такую оценку deeplearning.net/software/theano/tutorial/python-m...

А так же есть хороший совет использовать numpy для таких задач
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы