#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-разрядная версия, но это решило мою проблему. Я надеюсь, что это поможет, если у кого-то такая же проблема.