Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 25, 2008 14:18:48

astoon
От:
Зарегистрирован: 2007-04-09
Сообщения: 335
Репутация: +  2  -
Профиль   Отправить e-mail  

Размер занимаемой памяти

Привет.
Есть список кортежей со строками, т.е. список вида

[ (u'foo', u'blah'), (u'foo', u'blah') ... (u'foo', u'blah')]
Как в лоб расчитать размер занимаемой им памяти ? Причем без погрешности, так как он может быть очень большим.



Отредактировано (Сен. 25, 2008 14:36:28)

Офлайн

#2 Сен. 25, 2008 14:27:56

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Размер занимаемой памяти

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

Все что я встречал в интернете по этой теме:
1. Попытки примерно прикинуть что сколько занимает, исходя из типов данных.
2. Насоздавать кучу данных такого типа, и мерить как изменился объем всей программы в процессе работы.

P.S. как вывод, точно измерить не получится.



Отредактировано (Сен. 25, 2008 14:35:04)

Офлайн

#3 Сен. 25, 2008 14:35:52

astoon
От:
Зарегистрирован: 2007-04-09
Сообщения: 335
Репутация: +  2  -
Профиль   Отправить e-mail  

Размер занимаемой памяти

Естесственно, строки в кортежах не одинаковые. Хотелось бы формулу, может кто представляет как ее получить конкретно для этого случая, скажем зная длину каждой строки.
Нужно - для того чтобы представлять в каких пределах использовать хранение в RAM, а в каких - уже лучше БД. Процесс демоном, так что оба варианта возможны.



Отредактировано (Сен. 25, 2008 14:36:52)

Офлайн

#4 Сен. 25, 2008 14:53:40

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Размер занимаемой памяти

Тогда можно прпоробовать функцию mx.Tools.sizeof(a) (http://www.egenix.com/products/python/mxBase/mxTools/).
Для сложных объектов она не канаен, а вот для не юникодных строк и целых - вполне.

Ветка в тему, по ограничению использования функции: http://www.egenix.com/mailman-archives/egenix-users/2002-November/113383.html



Отредактировано (Сен. 25, 2008 14:57:52)

Офлайн

#5 Сен. 25, 2008 14:55:01

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Размер занимаемой памяти

подивіться по типах даних в Pythonsrc/Objects/tuleobject.c, stringobject.c, … Тут є моя презентація http://docs.google.com/a/quintagroup.com/Present?id=dc38f7h3_0c2xtjnd5 (є в ній кусок по управління памяттю в пітоні) Тут є відео з презентації http://plug.org.ua/video/python-objects/view на українській; Повинно помогти. Сама призентаія без відео не знаю чи буде корисною



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version