技术开发 频道

精心定制Win XPe系统 打破内存占用魔咒

  3.Windows XPe内存占用最小化的策略

  在嵌入式系统中内存是如此的宝贵,因此在开发中许多工程师常常会受困于内存占用问题。在嵌入式设备开发中,如何使到内存占用最小化是每个开发者都梦寐以求的事情。一般有以下几个方法值得借鉴:

  (1)以最小化来定制每一个组件

  要尝试减小内存占用,就要竭力避免出现组件膨胀的情况,也就是要使组件体积尽可能的小。在Windows XP Embedded中,我们可以删除许多占用大量内存的组件所依赖的特定相关组件。幸运的是,根据设备不同的特性和服务需求,在通常情况下我们都可以找到一两个不需要的关联依赖项,而当我们着手删除组件中的关联依赖项后就会发现组件体积变得小多了。这些组件包括:Explore外壳程序、Internet Explorer、.NET框架等。因此,要定制占用内存最小化的系统,最好的方法是根据实际需求,定制每一个组件以减少组件体积。

  (2)以最小化组件配置来定制系统

  在启动Windows XP Embedded 时,我们会看到系统启动时非常慢。原因是内核在启动时会有许多静态和延迟加载依赖项,尤其是各种安全性 DLL,但无疑这些加载项会占用内存。因此,要想减小内存占用的首要规则是尽量以最小化组件配置来定制系统。但事实上,减小内存占用最复杂且最难成功是我们在定制内核的时候,为了内核系统的稳定性和壮健性常常会给内核添加一些没有什么用的组件和驱动。例如设备上的外壳程序或启动时的界面等。

  当我们着手删除许多对启动无关的组件配置项后,只根据需要的配置来生成和启动内核。我们就会发现实际上内核映像还是能够启动,并且最可贵的是这时运行的内核是以很小规模的内存占用来启动的。因此,使内存占用变得更小的一个重要窍门,是在设备能正常启动和应用的情况下,以最少数量的组件和驱动来定制系统。

  (3)以最小化来加载设备驱动负载

  从前面的内存占用原因分析可知,内存占用较小是因为着运行时加载较少的驱动程序、设备和服务,而内存占用较少就意味着我们的应用程序将可以使用更多的内存资源。因此,如果只需要加载一个而不是两个设备驱动负载的话,就尽可能的只加载一个设备负载。因为加载和初始化驱动程序是需要消耗更多的内存占用和系统资源。

0
相关文章