Smalltalk Pharo3.0-持久性是自动的吗?
我注意到,在昨晚遇到一个问题后,重新启动Pharo3.0并没有“撤消”我的工作集——当我关闭它时,一切看起来都是原来的样子。我看到了Pharo现在包含的燃料-它会自动持续您的会话吗?我的印象是,你必须做一些技巧,使它与你的应用程序实际工作Smalltalk Pharo3.0-持久性是自动的吗?,smalltalk,pharo,Smalltalk,Pharo,我注意到,在昨晚遇到一个问题后,重新启动Pharo3.0并没有“撤消”我的工作集——当我关闭它时,一切看起来都是原来的样子。我看到了Pharo现在包含的燃料-它会自动持续您的会话吗?我的印象是,你必须做一些技巧,使它与你的应用程序实际工作 我错了吗?Pharo使用图像。图像基本上是使用Pharo时内存内容的快照 启动后,此映像将从映像文件加载到内存中,Pharo开始运行。当保存(快照)会话时,情况正好相反:当前状态/内存保存到.image文件中。包括当前会话中打开的所有工具、所有正在运行的进程和
我错了吗?Pharo使用图像。图像基本上是使用Pharo时内存内容的快照 启动后,此映像将从映像文件加载到内存中,Pharo开始运行。当保存(快照)会话时,情况正好相反:当前状态/内存保存到
.image
文件中。包括当前会话中打开的所有工具、所有正在运行的进程和所有活动对象
这与一个单独的对象序列化库无关 法罗有两种机制:
- 形象。映像是一个内存快照,包含所有对象(尤其是作为对象的已编译方法和类)。保存映像时,您正在将系统的完整状态保存到磁盘。您可以打开一个映像(它加载回内存,并在停止的位置继续执行)。事实上,还有另一个文件叫做变更文件。此文件包含您编辑的类和方法的文本表示形式。例如,工具使用此文件向您显示方法代码
- 现在除了图像的概念(内存快照)。系统将永久记录您的代码版本。在每个编译阶段之后,更改将提交到更改文件。您可以使用changeSorter或版本浏览器查看所做的操作(请注意,如果不保存图像,则无法使用changeSorter浏览您的更改,因为它是一个简单的工具)。现在,即使您没有保存图像,您的更改也会记录在更改文件中。有一种方法可以使用“工具”菜单下的“恢复丢失的更改…”菜单项恢复更改。 使用此工具,您可以浏览所有已自动录制的更改并重播它们。我们正在为未来开发新的工具
和用于序列化单个对象图,例如保存某个对象或通过internet发送。这与坚持整体形象大不相同。保存整个图像的效率要低得多。