修改桌面堆栈大小,解决运行大量程序时出现”Out of Memory”(内存不足)错误信息的问题

    大家在使用计算机是否遇到过下面的问题呢?

    当运行大量的程序时,在您尝试开启新的程序或者使用正在运行的程序时,出现”Out of Memory”(内存不足)错误信息,即使您的计算机仍然拥有充足的物理内存和页面文件内存。

    这个问题是由于桌面堆栈限制引起的,我们可以通过注册表来修改桌面堆栈大小以解决此问题,我们Fix it团队制作了一个自动化解决方案,大家可以通过点击下面的图片链接来下载或直接运行此Fix it解决方案:

    此解决方案主要是帮助大家修改了SharedSection注册表项中的第二个和第三个值,我们将第二个值增加到20480,第三个值增加到1024,下面是对SharedSection注册表项中每个值的解释:

  • 第一个 SharedSection 值 (1024) 用于定义所有桌面的常用堆栈大小。这包含全局句柄表(窗口句柄是在计算机范围内是唯一的)和共享系统设置(如 SystemMetrics)。通常不需要更改此值。
  • 第二个 SharedSection 值 (3072) 用于控制与交互式窗口站(用于 Windows 对象)关联的桌面堆栈的大小。此静态值用于防止操作错误的应用程序消耗过多资源。由于桌面堆栈被映射到每个进程的地址空间中,因此不应将此值设置为任意高的值(因为这会降低性能),而只应将该值提高到足以运行所有所需应用程序的程度。
  • 第三个 SharedSection 值 (512) 用于控制与“非交互式”窗口站相关联的每个桌面的桌面堆栈的大小。如果此值不存在,则非交互式窗口站的桌面堆栈大小将与交互式窗口站的指定大小(第二个 SharedSection 值)相同。

    如果大家想深入了解此问题或者想自己来设定SharedSection注册表项值的大小,欢迎大家参阅微软官方网站上的技术文章:

    应用于Windows NT, Win 2000,Win XP,Win 2003,请参阅下面这篇技术文章:

    http://support.microsoft.com/kb/126962/en-us

    应用于Win7和Vista,请参阅下面这篇技术文章:

    http://support.microsoft.com/kb/947246/en-us

posted on 2011-03-31 14:40  Microsoft FixIt(上海团队博客)  阅读(11143)  评论(1编辑  收藏  举报

导航