Как отладить MemoryError в Python? Инструменты для отслеживания использования памяти?

Различием в поведении с return является, по моему скромному мнению, наиболее важное различие между 2. Я также предпочитаю лямбду, потому что она меньше вводит, чем Proc.new:-)

10
задан Community 23 May 2017 в 12:19
поделиться

4 ответа

Heapy - это профилировщик памяти для Python, который вам нужен.

9
ответ дан 3 December 2019 в 22:37
поделиться

Самым простым и легким способом, вероятно, было бы использовать встроенные возможности запросов к памяти Python, такие как sys. getsizeof - просто запустите его на своих объектах, чтобы уменьшить проблему (например, файл меньшего размера) и посмотреть, что занимает много памяти.

3
ответ дан 3 December 2019 в 22:37
поделиться

В вашем случае ответ, вероятно, очень прост: не читать весь файл сразу, а обрабатывать фрагмент файла фрагментом. Это может быть очень просто или сложно в зависимости от вашего сценария использования. Так, например, вычисление контрольной суммы MD5 может быть выполнено гораздо более эффективно для огромных файлов без чтения всего файла. Последнее изменение резко снизило потребление памяти в некоторых сценариях использования SCons, но его было почти невозможно отследить с помощью профилировщика памяти.

Если вам все еще нужен профилировщик памяти: eliben уже предложил sys.getsizeof. Если это не помогает, попробуйте Heapy или Pympler.

2
ответ дан 3 December 2019 в 22:37
поделиться

Вы запросили рекомендацию по инструменту:

Python Валидатор памяти позволяет отслеживать использование памяти, места выделения, коллекции сборщика мусора, экземпляры объектов, снимки памяти и т. Д. Вашего приложения Python. Только Windows.

http: //www.softwareverify.com / python / memory / index.html

Заявление об ограничении ответственности: я принимал участие в создании этого программного обеспечения.

1
ответ дан 3 December 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: