Smalltalk Pharo3.0-持久性是自动的吗?

Smalltalk Pharo3.0-持久性是自动的吗?,smalltalk,pharo,Smalltalk,Pharo,我注意到,在昨晚遇到一个问题后,重新启动Pharo3.0并没有“撤消”我的工作集——当我关闭它时,一切看起来都是原来的样子。我看到了Pharo现在包含的燃料-它会自动持续您的会话吗?我的印象是,你必须做一些技巧,使它与你的应用程序实际工作 我错了吗?Pharo使用图像。图像基本上是使用Pharo时内存内容的快照 启动后,此映像将从映像文件加载到内存中,Pharo开始运行。当保存(快照)会话时,情况正好相反:当前状态/内存保存到.image文件中。包括当前会话中打开的所有工具、所有正在运行的进程和

我注意到,在昨晚遇到一个问题后,重新启动Pharo3.0并没有“撤消”我的工作集——当我关闭它时,一切看起来都是原来的样子。我看到了Pharo现在包含的燃料-它会自动持续您的会话吗?我的印象是,你必须做一些技巧,使它与你的应用程序实际工作


我错了吗?

Pharo使用图像。图像基本上是使用Pharo时内存内容的快照

启动后,此映像将从映像文件加载到内存中,Pharo开始运行。当保存(快照)会话时,情况正好相反:当前状态/内存保存到
.image
文件中。包括当前会话中打开的所有工具、所有正在运行的进程和所有活动对象


这与一个单独的对象序列化库无关

法罗有两种机制:

  • 形象。映像是一个内存快照,包含所有对象(尤其是作为对象的已编译方法和类)。保存映像时,您正在将系统的完整状态保存到磁盘。您可以打开一个映像(它加载回内存,并在停止的位置继续执行)。事实上,还有另一个文件叫做变更文件。此文件包含您编辑的类和方法的文本表示形式。例如,工具使用此文件向您显示方法代码

  • 现在除了图像的概念(内存快照)。系统将永久记录您的代码版本。在每个编译阶段之后,更改将提交到更改文件。您可以使用changeSorter或版本浏览器查看所做的操作(请注意,如果不保存图像,则无法使用changeSorter浏览您的更改,因为它是一个简单的工具)。现在,即使您没有保存图像,您的更改也会记录在更改文件中。有一种方法可以使用“工具”菜单下的“恢复丢失的更改…”菜单项恢复更改。 使用此工具,您可以浏览所有已自动录制的更改并重播它们。我们正在为未来开发新的工具

一般来说,你不应该依赖这些工具。使用Pharo分布式版本管理系统(monticello)创建包并将其发布到SmalltalkHub等Forge上

最后,Fuel是一个对象序列化程序,不用于保存Pharo快照。Fuel是一种快速序列化程序,当人们想要选择序列化的内容时使用它,通常是对象的图形

所有这些信息也可以在免费的Pharo书籍中找到:

用于序列化单个对象图,例如保存某个对象或通过internet发送。这与坚持整体形象大不相同。保存整个图像的效率要低得多。