Я создаю большой список ~ 50'000 элементов, каждый из которых представляет собой большой словарь. С тех пор как я начал, у меня было несколько проблем.
Во-первых, я просто попытался выполнить все 50 000 итераций (одна итерация = один новый вычисленный элемент списка) и в конце сохранить список размером 50 000. Но я так и не достиг конца, мое ядро обычно всегда умирало раньше.
Следовательно, я решил на каждых 500 итерациях загружать существующие списки, добавлять 500 новых элементов и сохранять обновленный список, используя pickle. Но мое ядро раньше умирало при загрузке или сохранении сохраненного списка, что делало мой список сохранения бесполезным, так как при попытке открыть его у меня возникает ошибка, такая как: «закончились входные данные».
для решения этой проблемы я сохранял каждые 500 итераций, как в # 2, но на этот раз я сохраняю и два последних сохраненных списка, на случай, если мое ядро погибнет и сломает мой последний сохраненный список.
Сейчас я ищу четвертое решение, которое было бы более пихотичным и эффективным способом решения этой проблемы. На данный момент он работает, но он берет возрасты, так как каждые 500 итераций он загружает и сохраняет список, который занимает около 15 млн! Я видел, что cPickle со специальным значением протокола должен быть быстрее, но по какой-то причине я не могу его скачать. Я думал, что, возможно, использовать текстовый файл или другой может быть лучше? Я мог бы открыть его и добавлять на каждой итерации новый элемент списка. Но я не уверен с точки зрения памяти, если это лучший способ, так как у меня всегда был бы открыт этот список дыр.
Пожалуйста, любое понимание очень поможет.