Pandas/SciPy — высокое использование памяти — Windows ⇐ Python
Pandas/SciPy — высокое использование памяти — Windows
Обновление: после публикации этого вопроса я обнаружил, что та же проблема возникает и с SciPy. Я обновил заголовок, чтобы другие могли найти этот пост. Я оставил первоначальный вопрос без изменений. Решение представлено ниже.
Оригинальный вопрос:
Есть ли способ уменьшить использование памяти Pandas в Windows при многопроцессорной обработке?
Я написал многопроцессорное приложение с использованием Python в Windows и получаю ошибки MemmoryError, в основном вызванные импортом Pandas. в каждом подпроцессе. При импорте Pandas я заметил в Taskmgr увеличение памяти фиксации примерно на 0,5 ГБ. При многопроцессорной обработке с использованием 16 ядер это становится серьезной проблемой, поскольку 8 ГБ памяти фиксации используются до запуска «реального» кода. Эта проблема оставляет приложению недостаточно памяти для фиксации, что приводит к выдаче ошибок MemoryErrors. Частная рабочая память не увеличивается таким же образом, поэтому ОЗУ не является ограничением.
Я попробую увеличить файл подкачки, но это не идеальное решение, поскольку приложение будет передано другим. Есть ли в Windows способ уменьшить размер импорта, например, разделив импорт между подпроцессами, или существуют ли какие-либо конкретные версии/флаги, которые могут уменьшить выделение, реализуемое pandas?
Python: 3.11 (64-разрядная версия), Pandas: 2.0.3, ОС: Windows 10 Enterprise
Обновление: после публикации этого вопроса я обнаружил, что та же проблема возникает и с SciPy. Я обновил заголовок, чтобы другие могли найти этот пост. Я оставил первоначальный вопрос без изменений. Решение представлено ниже.
Оригинальный вопрос:
Есть ли способ уменьшить использование памяти Pandas в Windows при многопроцессорной обработке?
Я написал многопроцессорное приложение с использованием Python в Windows и получаю ошибки MemmoryError, в основном вызванные импортом Pandas. в каждом подпроцессе. При импорте Pandas я заметил в Taskmgr увеличение памяти фиксации примерно на 0,5 ГБ. При многопроцессорной обработке с использованием 16 ядер это становится серьезной проблемой, поскольку 8 ГБ памяти фиксации используются до запуска «реального» кода. Эта проблема оставляет приложению недостаточно памяти для фиксации, что приводит к выдаче ошибок MemoryErrors. Частная рабочая память не увеличивается таким же образом, поэтому ОЗУ не является ограничением.
Я попробую увеличить файл подкачки, но это не идеальное решение, поскольку приложение будет передано другим. Есть ли в Windows способ уменьшить размер импорта, например, разделив импорт между подпроцессами, или существуют ли какие-либо конкретные версии/флаги, которые могут уменьшить выделение, реализуемое pandas?
Python: 3.11 (64-разрядная версия), Pandas: 2.0.3, ОС: Windows 10 Enterprise
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Веб-сокеты Java в Tomcat вызывают очень высокое использование памяти и ООО
Anonymous » » в форуме JAVA - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Высокое использование памяти при извлечении данных из хранимой процедуры в DataTable
Anonymous » » в форуме C# - 0 Ответы
- 55 Просмотры
-
Последнее сообщение Anonymous
-