技术开发 频道

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

【Windows嵌入式有奖征文系列】

  【IT168 专稿】
嵌入式系统的内存是宝贵的,内存是否高效率的使用往往意味着嵌入式设备是否高质量和高性能。在我所负责的一个基于Windows XPe平台的嵌入式项目开发中,经常发现当Windows XPe的内存占用超过一定范围时,系统就会出现莫名其妙的问题。例如会发现计算机速度慢了,还有就是鼠标不起作用,或很多程序打不开,或者打开时提示内存不足。如果不理会的话,过不了多久嵌入式设备就会无法操作,甚至出现系统关不了机,就象是死机一样。

  为什么会出现这种情况呢?经过几个晚上通宵达旦的加班分析和研究,原来主因是系统内存不足导致速度缓慢,但明明我的嵌入式设备已经配备足够多的内存。换句话说,就是系统发生了内存占用,而过多的内存占用使系统资源僧多粥少。这也是最让许多嵌入式设备开发者头痛的事情。本文与大家分享我在 Windows XP Embedded 设备上减小内存占用的做法和经验。


  1.什么是Windows XPe内存占用?

  (1)什么是Windows XP内存占用?

  现在我们已经进行了大内存时代,很多开发者把内存升级到了G级别后就以为能解决内存不足的问题。但实际上随着操作系统功能的加强,对内存资源的占有率也是越来越高。其中最常见的就是当我们在Windows XP中纵横驰骋时,却经常会遇到“内存不足”的错误提示信息,使到程序不能运行或完成所需操作。深究其根源,原因是Windows XP中加入了很多崭新的功能,这些功能也是内存里最大块头的“演员”,他们占据了大部分内存。

  正所谓:请神容易送神难,不幸的是当他们的表演结束后却经常会不肯主动退出舞台,结果就使到余下可使用的有效内存就变得很少了,程序运行自然就变得很慢很慢了。因此,Windows XP内存占用是系统的一个严重弊病,也是众多XP系统开发者心中的痛。

  (2)Windows XPe也会有内存占用情况吗?

  Windows XP Embedded 与 Windows XP基本上是一样的,都包含 10,000 多个独立的功能组件。但Windows XP Embedded 的优势是目标操作系统可以通过删除不必要的 Windows XP 组件来减少组件的内存占用。Windows XP Embedded 允许OEM制造商创建一个具有较小内存占用量和具有特定功能的目标操作系统。这样OEM制造商就可以通过删除操作系统中不必要的组件或驱动程序,一是降低安装和软件构建复杂性,二是减少组件的内存占用量,最终增加操作系统的坚固性。

  简而言之,Windows XP Embedded 是Windows XP的一种有着灵活定制能力的特殊版本。其核心同Windows XP 是相同的,组件上的差异也较少,主要区别在于其组件具有高度可定制性。XPe允许开发人员在自定义设备映像中根据不同性能与服务只选择需要的特性来构建定制、小内存体积占用的设备。

  因此,Windows XP Embedded组件所占用的内存空间会根据所选择的不同组件而有所不同,最小配置的内存占用体积可从5 MB开始。然后随着配置的特性和服务的增加,组件所占用的内存空间也随之增加。但由于嵌入式设备内存容量一般不大,所以基于Windows XPe的嵌入式设备的内存占用问题仍然不容忽视。

0
相关文章