В последние несколько лет я работал над модулем python для параллельной обработки спутниковых изображений и недавно заметил, что использование памяти моим модулем сильно отличается между питоном 2 и 3. Эта проблема всегда возникает, когда я начинаю распараллеливание с использованиеммногопроцессорный модуль.Кто-нибудь знает причину этого?
Основной процесс моего кода заключается в следующем: я отправляю работникам разные части изображения, используя полную карту памяти полного изображения и координаты для извлечения необходимых данных.ломтик.Эти фрагменты затем обрабатываются параллельно и сохраняются на диск.
Когда я запускаю свой код с python 2, во время обработки память иногда использует стремительный рост, тогда как с python 3 она кажется намного более стабильной.В Python 2 использование памяти иногда может быть более чем в пять раз больше ... Мой код во многом зависит от использования пустых меммапов для доступа к моим данным на диске, но я не уверен, связано ли это с этим.
Я думаю, что мне было бы хорошо попросить моих пользователей работать только на Python 3, но было бы хорошо, если бы пользователи Python 2 могли использовать и мой модуль.