Учитывая большую (4.5 GB) базу данных тестирования python, выполнение которой включает в себя много десятков файлов, многие из которых не являются непосредственно разборчивыми, можно ли перенести первоначальное выполнение программы в одну строку, создать Stackless тасклета вокруг этой функции и во время выполнения рассортировать тасклет как способ сохранения состояния всей программы? Каков предел способности Stuckless для таблеток?Использование Stackless Python для сохранения состояния большой запущенной программы?
ответ
Это действительно представляет собой возможность Stackless Pickling
Одной из главных особенностей Stackless является его способность протравить и unpickle тасклеты. Это означает, что запущенная программа внутри тасклета может быть постоянно сохранена в файле или строке. Позже он может быть восстановлен снова и может продолжаться в том месте, где он был ранее остановлен. Это не обязательно должно быть на одной машине !:
Так что на наш вопрос «возможно ли» ответ «да».
В качестве «того, как это сделать», я думаю, что приведенная выше ссылка представляет собой конкретный пример. Попробуйте и отправьте другой вопрос, если он не работает. Учитывая размер вашей базы кода (4.5 ГБ Python источник файлы довольно огромные!), Может быть, вы достигнете пределов Stackless?
Чтобы быть более конкретным: Stackless добавляет поддержку травильного ряда встроенных элементов, такие как исполнения фреймов и модули и другое выполнение объектов Однако код, такие как классы, функция и модули, все маринованные по названию , Это означает, что на другой машине одни и те же объекты должны быть доступны через механизм импорта.
Другими словами, состояние маринованного выполнения будет содержать текущие локальные переменные и все такое, но содержимое объектов кода или модулей не будет отображаться. Они должны быть доступны по имени, когда государство не заполнено.