【发布时间】:2012-11-28 08:12:54
【问题描述】:
我只是好奇,是否可以将程序的所有变量和当前状态转储到一个文件中,然后在另一台计算机上恢复它?!
假设我有一个 Python 或 Ruby 小程序,给定特定条件,它将所有当前变量和当前状态转储到一个文件中。
稍后,我可以在另一台机器上再次加载它,然后返回它。
类似于 VM 快照功能。
我在这里看到过这样的问题,但与 Java 相关,保存当前的 JVM 并在不同的 JVM 中再次运行它。大多数人都说没有这样的东西,只有 Terracotta 有一些东西,仍然不完美。
谢谢。
澄清我想要达到的目标:
给定 2 个或更多 Raspberry Pi,我试图在 Pi nº1 上运行我的软件,但是,当我需要用它做一些不同的事情时,我需要将软件移动到 Pi nº2 而不会丢失数据,只有一个小的中断时间。
等等,到无限数量的机器。
【问题讨论】:
-
我想有人可能会对
pickle发疯,然后做一些模糊的事情,但它会非常脆弱,可能无法捕捉到所有东西。不管怎样,这都是个坏主意。 -
酸洗整个环境在这里解决:stackoverflow.com/questions/8232798/…
-
可以使用核心转储,Perl 就是这样使用
dump。您可能想在 superuser.com 上询问如何操作,但是,正如 Perldump文档所说,“......这个函数现在基本上已经过时了,主要是因为很难将核心文件转换为可执行文件。” -
谢谢,我正在阅读关于莳萝和泡菜的文章 :)
-
使用核心转储来避免启动时间只会提高模块的加载时间和变量的初始化。它不会提高代码的运行时间,因为它仍然依赖于解释器。此外,任何打开的文件、数据库连接等都不会被保留,因此您必须在某种空闲循环中保存并重新打开才能继续。