Ошибка памяти Python при использовании tracemalloc.take_snapshot()

#python #memory #runtime-error #tracemalloc

Вопрос:

Я работаю над Python, и мне интересно знать, какая память используется во время процесса. Для этой цели я использую библиотеку tracemalloc Python:

 def getMemory():
"""
takes a snapshot of memory at the current time
"""
return tracemalloc.take_snapshot()
 

В любом случае, когда я запускаю свою программу, я получаю следующую ошибку

 Traceback (most recent call last):
  File "c:/Users/juanc/OneDrive/Documentos/repos/EDA/Reto2-G06/App/view.py", line 111, in <module>
    loadStats = loadData(catalog)
  File "c:/Users/juanc/OneDrive/Documentos/repos/EDA/Reto2-G06/App/view.py", line 85, in loadData
    return controller.loadData(catalog)
  File "c:UsersjuancOneDriveDocumentosreposEDAReto2-G06Appcontroller.py", line 61, in loadData
    stop_memory = getMemory()
  File "c:UsersjuancOneDriveDocumentosreposEDAReto2-G06Appcontroller.py", line 144, in getMemory
    return tracemalloc.take_snapshot()
  File "C:UsersjuancAppDataLocalProgramsPythonPython38-32libtracemalloc.py", line 532, in take_snapshot
    traces = _get_traces()
MemoryError
 

Мой код работает нормально , если я его не использую tracemalloc.take_snapshot() , но когда я его использую, я получаю упомянутую ошибку.

Я не знаю, что вызывает ошибку и как ее исправить.

Поэтому я пишу этот пост в надежде, что кто-нибудь сможет помочь мне решить эту проблему.

Спасибо 🙂

PD: Код, с которым я работаю , предназначен для университетского задания, и в инструкциях по заданию указано, что я должен использовать tracemalloc.take_snapshot() , поэтому изменение метода измерения памяти для меня не вариант.

**ОБНОВЛЕНИЕ**

Мне удалось решить эту проблему. Я запускал старую 32-разрядную версию python (v3.8) на 64-разрядном компьютере. Поэтому я обновил python до последней 64-битной версии, и проблема исчезла. Я не знаю, была ли проблема связана с версией python, и это была 32-разрядная версия, но это решило мою проблему. Я надеюсь, что это поможет, если у кого-то такая же проблема.