Научный форум dxdy
Доброе утро. Я написал программу которая правильно выполняет поставленную задачу, насколько я могу судить по предоставленному примеру ввода и вывода, но не удовлетворяет требованию: Ограничение памяти 64Mb
Как бы мне выяснить сколько памяти потребляет моя программа? А ещё лучше какая часть моей программы является самой прожорливой? Нашёл одно возможное решение, но оно использует некую стороннюю библиотеку:
https://stackoverflow.com/questions/985 . n-function
Может как то средствами стандартной возможно обойтись?
На всякий случай код программы, один а иногда два цикла выполняются в условиях ограничений по памяти, присваивание всем переменным нулей в конце цикла это моя попытка «очистить память»
Используется синтаксис Python
from pymorphy2 import MorphAnalyzer
for i in range ( 9 ) :
adjf , noun = input ( ) . strip ( ) . split ( )
noun_a = MorphAnalyzer ( ) . parse ( noun ) [ 0 ]
adjf_a = MorphAnalyzer ( ) . parse ( adjf ) [ 0 ]
if str ( noun_a. tag ) . split ( ‘,’ ) [ 0 ] == ‘ADJF’ :
noun , adjf = adjf , noun
noun_a , adjf_a = adjf_a , noun_a
a , b , c , d = tuple ( str ( noun_a. tag ) . split ( ‘,’ ) )
c1 , c2 = c. split ( )
if c2 == ‘plur’ :
print ( adjf_a. inflect ( { c2 , d } ) . methods_stack [ 0 ] [ 1 ] , end = ‘ ‘ )
else :
print ( adjf_a. inflect ( { c1 , c2 , d } ) . methods_stack [ 0 ] [ 1 ] , end = ‘ ‘ )
print ( noun )
adjf = 0
noun = 0
noun_a = 0
adjf_a = 0
a = 0
b = 0
c = 0
d = 0
c1 = 0
c2 = 0
Евгений Степанищев
Пишу, по большей части, про историю, свою жизнь и немного про программирование. Живу в Казани.
Сколько памяти съела программа на Python?
Некоторое время назад мне хотелось выяснить, сколько съедает памяти программа на Python и чем эта память занята. Тогда я не смог быстро найти решение и обошёлся без него, а вчера, совершенно случайно, наткнулся на целых два.
Приведу их у себя полностью, чтобы потом можно было быстро найти.
Следующий код (используется модуль Heapy):
from guppy import hpy h = hpy() print h.heap()
выведет вот такую, достаточно информативную, табличку:
Partition of a set of 132527 objects. Total size = 8301532 bytes. Index Count % Size % Cumulative % Kind (class / dict of class) 0 35144 27 2140412 26 2140412 26 str 1 38397 29 1309020 16 3449432 42 tuple 2 530 0 739856 9 4189288 50 dict (no owner)
Другое решение — использовать Dowser, его интересная особенность — можно наблюдать за работающим кодом через веб-браузер.
# memdebug.py import cherrypy import dowser def start(port): cherrypy.tree.mount(dowser.Root()) cherrypy.config.update(< 'environment': 'embedded', 'server.socket_port': port >) cherrypy.server.quickstart() cherrypy.engine.start(blocking=False)
Подключаем в программу memdebug и вызываем memdebug.start.
Там же упоминается модуль PySizer, но его автор забросил работу и рекомендует использовать Heapy.
Как определить, сколько памяти потребляет скрипт python (внутри самого скрипта)?
Нужно в конце скрипта через print вывести количество ОЗУ в Мб, которое занял скрипт. Есть варианты?
- Вопрос задан более трёх лет назад
- 11339 просмотров
1 комментарий
Простой 1 комментарий

Решения вопроса 1
Сергей Горностаев @sergey-gornostaev Куратор тега Python
Седой и строгий
pip install memory_profiler
from memory_profiler import memory_usage memory_usage()
Ответ написан более трёх лет назад
Комментировать
Нравится 9 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Python
Палиндромы leetcode, в VS все правильно, на сайте другой ответ, что делать?
- 1 подписчик
- 2 часа назад
- 53 просмотра

- HTML
- +3 ещё
Почему не работает переход на страницу?
- 1 подписчик
- 3 часа назад
- 82 просмотра

- Python
- +1 ещё
Реально ли вывести виджет с какой-либо инфой поверх PySide6.QtMultimediaWidgets.QVideoWidget?
- 1 подписчик
- 4 часа назад
- 13 просмотров

- Python
Почему не проходит код для решения задачи на leetcode?
- 1 подписчик
- 4 часа назад
- 74 просмотра

- Python
Почему текстовый редактор и консоль по-разному присваивают ссылки на переменные Python?
- 1 подписчик
- 4 часа назад
- 30 просмотров

- Python
- +1 ещё
Почему callback_query_handler не видит call.data?
- 1 подписчик
- 9 часов назад
- 40 просмотров

- Python
При выводе users_cards выводится [, . ] как это исправить?
- 1 подписчик
- 10 часов назад
- 34 просмотра

- Python
В приложении django 4.2 + django rest framework: Model.__str__ нужен только для админки?
- 1 подписчик
- 13 часов назад
- 47 просмотров

- Python
- +1 ещё
Не правильная проверка ячейки таблицы через цикл, почему не записывается переменная?
- 1 подписчик
- 13 часов назад
- 37 просмотров

- Python
Почему падает бот?
- 1 подписчик
- вчера
- 85 просмотров
от 120 000 ₽
от 120 000 до 240 000 ₽
ATI.SU • Санкт-Петербург
от 170 000 до 260 000 ₽
19 нояб. 2023, в 23:12
55555 руб./за проект
19 нояб. 2023, в 20:35
4000 руб./за проект
19 нояб. 2023, в 20:11
500 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Не могу настроить почтовый сервер(Postfix/Dovecot с интеграцией в MS Active Directory) на alt linux. Может у кого-то есть решение?
- 3 подписчика
- 1 ответ
- 3 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
- 3 подписчика
- 2 ответа
- 2 подписчика
- 2 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 3 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
Как измерить количество используемой методом памяти Python?
Нужно измерить количество потребляемой памяти.
Пытаюсь измерить с помощью memory_profiler , но его PyCharm почему-то не видит (from memory_profiler import memory_usage написал). Теперь вопрос, как получить именно используемую память?
Память вычисляется с помощью memory_profiler.memory_usage(), но почему-то не работает, если писать так:import memory_profiler def method(g): x = [] for i in range(g): x.append(i) return x y = [] for j in range(len(10)): y.append(memory_profiler.memory_usage(method(10000)))
