Найти - Пользователи
Полная версия: Размер занимаемой памяти
Начало » Python для экспертов » Размер занимаемой памяти
1
astoon
Привет.
Есть список кортежей со строками, т.е. список вида
[ (u'foo', u'blah'), (u'foo', u'blah') ... (u'foo', u'blah')]
Как в лоб расчитать размер занимаемой им памяти ? Причем без погрешности, так как он может быть очень большим.
shiza
а вот никто не знает, ибо больно уж все мудрено %)
В даном случае например, строки одинаковые, поэтому они буду хранится в одной ячейке памяти.

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

P.S. как вывод, точно измерить не получится.
astoon
Естесственно, строки в кортежах не одинаковые. Хотелось бы формулу, может кто представляет как ее получить конкретно для этого случая, скажем зная длину каждой строки.
Нужно - для того чтобы представлять в каких пределах использовать хранение в RAM, а в каких - уже лучше БД. Процесс демоном, так что оба варианта возможны.
shiza
Тогда можно прпоробовать функцию mx.Tools.sizeof(a) (http://www.egenix.com/products/python/mxBase/mxTools/).
Для сложных объектов она не канаен, а вот для не юникодных строк и целых - вполне.

Ветка в тему, по ограничению использования функции: http://www.egenix.com/mailman-archives/egenix-users/2002-November/113383.html
crchemist
подивіться по типах даних в 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 на українській; Повинно помогти. Сама призентаія без відео не знаю чи буде корисною
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB