Smalltalk中图像生成和图像剥离有什么区别?

use*_*097 6 smalltalk

我经常阅读Smalltalk中的"图像生成"过程.这个过程似乎是指从Smalltalk内部创建一个从头开始的图像.

但是还有一个"剥离"过程,似乎涉及删除对象以部署运行时.

两者有什么区别?有没有支持图像生成的Smalltalk?

Dav*_*jan 1

术语“图像生成”通常指从安装时附带的默认普通图像开始,并将某些项目所需的所有代码加载到其中的过程。这是在开发过程中定期完成的,以确保所有代码实际加载并在默认映像中运行而不会出现问题。

剥离是(有时)在部署之前完成的过程,从包含项目所有必需代码的映像中,将一些未使用的类和方法从映像中“剥离”出来。这样做是为了使部署的映像更小,或者减少对外部共享库的依赖,或者出于安全原因或许可原因。例如,剥离可能会删除许多与无头服务器的 UI 相关的类。或者它可能会删除编译器以防止用户更改代码。无论如何,剥离都不是精确的科学,因为很难确定什么可以去除,什么不能去除。

因此,通过图像生成,您最终会得到比开始时更大的图像,而通过剥离,您最终会得到较小的图像。