在基于 Windows XP 的计算机上完成编译所需的时间比在基于 Windows NT 的计算机上所需的时间长

文章翻译 文章翻译
文章编号: 816073 - 查看本文应用于的产品
有关本文的 Microsoft Windows Server 2003 版本,请参阅 890553(EN).
重要说明:本文包含有关如何修改注册表的信息。修改注册表之前,一定要先对其进行备份。并且一定要知道在出现问题时如何还原注册表。有关如何备份、还原和修改注册表的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 高级用户的 Windows 注册表信息
展开全部 | 关闭全部

本文内容

症状

尝试在基于 Microsoft Windows XP 的计算机上编译程序时,完成编译所需的时间可能比使用相同的计算机硬件并基于 Windows NT 时长大约 30% 到 40%。

在运行 Microsoft Windows XP 的多宿主计算机上,使用通用命名约定 (UNC) 路径访问存储在远程服务器消息块 (SMB) 服务器上的文件时,可能会延迟 10 到 60 秒。当计算机访问文件次数越频繁,此问题出现次数也越频繁。例如,如果应用程序尝试每隔两秒访问文件,则有可能出现此问题。如果通过映射网络驱动器访问文件,则不会出现此问题。如果至少在一个网络接口中禁用 TCP/IP 上的 NetBIOS (NetBT) 时,也不会出现此问题。

原因

如果您编译的是具有许多文件的大程序,可能会发生此问题。Windows XP 缓存您正在编译的文件,并且当达到 Windows 缓存限制时,Windows 会删除缓存中的文件。当 Windows 这样做时,它可能会删除编译期间频繁使用的文件。要使用这些文件,必须重新缓存它们。重新缓存文件会降低编译过程的速度。

解决方案

Service Pack 信息

要解决此问题,请获取最新的 Windows XP Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322389 如何获取最新的 Windows XP Service Pack

修补程序 信息

Microsoft 提供了一个受支持的修补程序。但是,此修补程序仅用于解决本文所述的问题。请仅对出现这一特定问题的系统应用此修补程序。此修补程序可能还会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修补程序的下一个软件更新。

如果可以下载此修补程序,此知识库文章顶部将存在“提供修补程序下载”部分。如果此部分不存在,请联系 Microsoft 客户支持服务部门以获取该修补程序。

注意:如果发生其他问题或需要进行任何疑难解答,您可能需要另行创建服务请求。对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。有关 Microsoft 客户支持服务部门的电话号码的完整列表,或者另行创建服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意:“提供修补程序下载”窗体显示了修补程序提供的语言。如果找不到需要的语言,则说明修补程序没有那种语言的版本。

此修补程序的英文版具有下表中列出的文件属性(或更新的属性)。这些文件的日期和时间以协调世界时 (UTC) 格式列出。当您查看文件信息时,该时间将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中的“日期和时间”工具中的“时区”选项卡。
日期         时间   版本        大小     文件名
   --------------------------------------------------
15-Apr-2003 23:25 5.1.2600.1206 92,160 Cscdll.dll 
15-Apr-2003 22:59 5.1.2600.1206 401,920 Mrxsmb.sys 
15-Apr-2003 22:59 5.1.2600.1206 155,392 Rdbss.sys

				

替代方法

要解决此问题,请按照下列步骤操作:
  1. 将网络驱动器映射到 SMB 服务器。为此,请按照下列步骤操作:
    1. 启动 Windows 资源管理器。
    2. 在“工具”菜单上,单击“映射网络驱动器”
    3. 在“驱动器”列表中,选择一个驱动器号。
    4. 在“文件夹”列表中,键入服务器中共享资源的 UNC 路径。请使用以下格式:
      \\服务器名\SharedItem
      或者,单击“浏览”,然后找到共享资源。
    5. 单击“完成”
  2. 在网络接口上禁用 NetBT。为此,请按照下列步骤操作:
    1. 依次单击“开始”、“运行”,键入 ncpa.cpl,然后单击“确定”
    2. 右键单击要配置的网络连接,然后单击“属性”
    3. 如果连接为本地连接,则单击“常规”选项卡,在“此连接使用下列项目”框中单击“Internet 协议 [TCP/IP]”,然后单击“属性”。如果连接不是本地连接,则单击“网络”选项卡。
    4. 单击“高级”,然后单击“WINS”选项卡。
    5. 在“NetBIOS 设置”区域中,单击“禁用 TCP/IP 上的 NetBIOS”
    6. 单击“确定”三次。

更多信息

警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。要成功应用此修补程序,必须将 ScavengerTimeLimit 值添加到注册表。为此,请按照下列步骤操作:
  1. 依次单击“开始”、“运行”,键入 regedit,然后单击“确定”
  2. 在注册表中找到以下项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters


    最小值:1(以秒为单位的时间)
    默认值:10 最大值:120(两分钟)
    类型:DWORD

    注意:您可为 ScavengerTimeLimit 输入 1 到 120 之间的任一值,以控制 Scavenger 线程清除旧文件共享连接的频率。
  3. 右键单击“参数”,指向“新建”,然后单击“DWORD 值”
  4. 键入 ScavengerTimeLimit,然后按 Enter 以命名新值。
  5. 双击“ScavengerTimeLimit”
  6. 在“数值数据”框中,键入 60,然后单击“确定”
  7. 关闭注册表编辑器。

状态

Microsoft 已经确认这是在“适用于”部分中列出的 Microsoft 产品中存在的问题。 此问题最早在 Microsoft Windows XP Service Pack 2 中得到解决。

属性

文章编号: 816073 - 最后修改: 2008年9月11日 - 修订: 4.1
这篇文章中的信息适用于:
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Home Edition
关键字:?
kbautohotfix kbhotfixserver kbqfe kbwinxpsp2fix kbwinxppresp2fix kbfix kbbug KB816073
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com