Ответ 1
К сожалению, это трудно точно ответить без тестирования на вашем компьютере.
Вот несколько начальных мыслей:
-
Не существует ограничения по размеру, который должен использовать модуль Pickle, но вы нажимаете границы его предполагаемого использования. Он не предназначен для отдельных крупных объектов. Однако с тех пор, как вы используете Python 3.5, вы сможете воспользоваться PEP 3154, который добавляет лучшую поддержку для больших объектов. Вы должны указать pickle.HIGHEST_PROTOCOL, когда вы dump ваши данные.
-
Вероятно, у вас будет большой успех, потому что вы пытаетесь справиться с объектом, размером 3x в вашей памяти. Ваша система, вероятно, начнет замену и, возможно, даже переломит. В наши дни операционная система настолько дешевая, что она должна быть значительно меньше 2 ГБ.
-
Чтобы обрабатывать свопинг, убедитесь, что у вас достаточно свободного пространства подкачки (большой раздел подкачки, если вы на Linux, или достаточно места для файла подкачки на вашем основном разделе в Windows).
-
Как показано , Pickle не очень дружелюбен к потреблению RAM во время процесса травления, поэтому вам, возможно, придется иметь дело с Python, пытающимся получить даже больше памяти из ОС, чем 1,5 ГБ, которые мы можем ожидать для вашего объекта.
Учитывая эти соображения, я не ожидаю, что он будет очень хорошо работать для вас. Я настоятельно рекомендую обновить ОЗУ на вашей целевой машине, чтобы сделать эту работу.