2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Python, измерить потребление памяти
Сообщение18.04.2022, 14:24 


30/03/20

434
Доброе утро. Я написал программу которая правильно выполняет поставленную задачу, насколько я могу судить по предоставленному примеру ввода и вывода, но не удовлетворяет требованию: Ограничение памяти 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

 Профиль  
                  
 
 Re: Python, измерить потребление памяти
Сообщение18.04.2022, 15:33 
Заслуженный участник
Аватара пользователя


16/07/14
9151
Цюрих
Легко гуглится https://docs.python.org/3/library/tracemalloc.html. А для очистки памяти стоит покопаться в https://docs.python.org/3/library/gc.html (и использовать del, а не перезаписывать значение переменной) - если с точки зрения интерпретатора памяти достаточно, а за ней следит что-то внешнее, то он очень вряд ли будет освобождать используемую память сразу.
Какой размер входа? Если разумный, то я бы предположил, что проблема в pymorphy2. Наверняка как минимум не надо создавать MorphAnalyzer много раз.

 Профиль  
                  
 
 Re: Python, измерить потребление памяти
Сообщение18.04.2022, 15:43 


30/03/20

434
mihaild
Спасибо, получилось

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group