Ошибка памяти Python при наличии памяти - PullRequest
0 голосов
/ 22 декабря 2019

У меня есть программа на Python, которая читает строки файлов и анализирует их. Программа намеренно читает много строк в оперативную память.

Программа начала получать MemoryError при добавлении строки (как str) в список. Когда я проверяю в диспетчере задач (программа работает в Windows 10), я вижу, что память программы находится на 1635 МБ (стабильно), а общее использование памяти машиной ниже 50%.

Iчитайте, что Python не ограничивает память, так в чем может быть причина?

Технические подробности:

Я использую Python 3.6.5 на Windows 10, 64-битный 16 ГБ ОЗУ. Я запускаю программу из терминала PowerShell, а не через IDE.

1 Ответ

3 голосов
/ 22 декабря 2019

Я вижу, что память программы находится на 1635 МБ

EXE-файлы Windows, скомпилированные как 32-разрядные, имеют по умолчанию ограничение 2 ГБ памяти даже в 64-разрядных ОС. где гораздо больше памяти доступно. У вас 1,6 ГБ, поэтому вы, вероятно, столкнулись с этим ограничением.

Убедитесь, что вы используете 64-разрядную версию Python.exe. Страница загрузки Python.org по умолчанию 32-битная по неизвестным причинам. Но если вы перейдете к нижней части их страницы загрузки для данного выпуска , вы сможете найти версию x86-64 для 64-битной архитектуры.

...