修复: String.IndexOf 方法需要更长时间,比预期的要完成,和。NET 框架 4.0 性能显著下降

文章翻译 文章翻译
文章编号: 2467309 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

请考虑以下情形:
  • 您运行的应用程序面向 Microsoft。NET 框架 4.0。
  • 应用程序调用,String.IndexOf报告在字符串中的子字符串的第一个匹配项的索引的方法。
  • 该字符串包含子字符串的多个的实例。

在这种情况下花费更长的时间比预期的要执行,String.IndexOf方法。因此,应用程序的性能会大大减少。

请注意当应用程序面向早期版本时未出现此性能问题在。NET 框架。

解决方案

修补程序信息

现在可以从 Microsoft 获得支持的修补程序。但是,它被用于解决仅在本文中描述的问题。它仅适用于出现这一特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修补程序的下一个 service pack。

要立即解决此问题,请与 Microsoft 客户支持服务,以获取此修复程序。有关 Microsoft 客户支持服务的电话号码和关于支持费用的信息的完整列表,请访问以下 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
请注意在特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新将解决您的问题,可能会被取消通常会导致支持电话的费用。正常收取支持费用将应用于不适合所讨论的特定更新的其他支持问题和事项。

系统必备组件

若要对此修补程序,您必须具有 Microsoft。NET 框架 4.0 安装。

安装信息

由于需要重新编译的。NET 框架 4.0 为本机代码的程序集,此修补程序的安装可能需要更长的时间比预期的要完成。时将发生此行为,您可以查看任务管理器中运行 CLR 优化服务器 (Mscorsvw.exe)。

重新启动信息

您可能不得不在应用此修补程序后,重新启动计算机。我们建议您退出 Microsoft Visual Studio 和所有。NET Framework 应用程序之前您应用此修补程序。

修补程序替换信息

此修补程序不替代以前发布的修补程序。

文件信息

此修补程序的英语 (美国) 版本安装具有下表中列出的属性文件。将日期和时间为这些文件列出了以协调通用时间 (UTC)。日期和时间在您的本地计算机上的这些文件在您的本地时间与当前夏令时 (DST) 偏差一起显示。此外,该日期和时间可能会更改时执行某些操作,文件可以。
支持所有基于 x86 的版本的 Windows XP、 Windows Server 2003、 Windows Vista 的、 Windows 服务器于 2008 年和 Windows 7 倍
收起该表格展开该表格
文件名称文件版本文件大小日期时间平台
Clr.dll4.0.30319.4046,732,104到 2010 年 12 月 15 日23: 51x86
Mscordacwks.dll4.0.30319.4041,141,592到 2010 年 12 月 15 日23: 51x86
Mscordbi.dll4.0.30319.404955,216到 2010 年 12 月 15 日23: 51x86
启动画面4.0.30319.4045,196,112到 2010 年 12 月 15 日23: 51x86
Nlssorting.dll4.0.30319.40456,144到 2010 年 12 月 15 日23: 51x86
Sos.dll4.0.30319.404516,936到 2010 年 12 月 15 日23: 51x86

支持所有基于 x64 版本的 Windows XP、 Windows Server 2003、 Windows Vista 的、 Windows Server 2008 的、 Windows 7 以及 Windows Server 2008 R2 x
收起该表格展开该表格
文件名称文件版本文件大小日期时间平台
Clr.dll4.0.30319.4049,798,984到 2010 年 12 月 16 日00: 40x64
Mscordacwks.dll4.0.30319.4041,513,304到 2010 年 12 月 16 日00: 40x64
Mscordbi.dll4.0.30319.4041,453,392到 2010 年 12 月 16 日00: 40x64
启动画面4.0.30319.4044,960,080到 2010 年 12 月 16 日00: 40x64
Nlssorting.dll4.0.30319.40467,408到 2010 年 12 月 16 日00: 40x64
Sos.dll4.0.30319.404597,832到 2010 年 12 月 16 日00: 40x64

为所有受支持基于 IA x64 版本的 Windows Server 2003、 Windows 服务器于 2008 年和 Windows Server 2008 R2
收起该表格展开该表格
文件名称文件版本文件大小日期时间平台
Clr.dll4.0.30319.40419,382,088到 2010 年 12 月 16 日01: 31IA-64
Mscordacwks.dll4.0.30319.4043,755,864到 2010 年 12 月 16 日01: 31IA-64
Mscordbi.dll4.0.30319.4043,293,520到 2010 年 12 月 16 日01: 31IA-64
启动画面4.0.30319.4044,448,080到 2010 年 12 月 16 日01: 31IA-64
Nlssorting.dll4.0.30319.404143,184到 2010 年 12 月 16 日01: 31IA-64
Sos.dll4.0.30319.4041,203,016到 2010 年 12 月 16 日01: 31IA-64



替代方法

若要解决性能问题,使用,StringComparison.Ordinal当应用程序调用的参数值,String.IndexOf方法。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

更多信息

有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684用于描述 Microsoft 软件更新的标准术语的说明

属性

文章编号: 2467309 - 最后修改: 2011年2月10日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft .NET Framework 4.0
关键字:?
kbexpertiseinter kbprb kbsurveynew kbfix kbbug kbqfe kbhotfixserver kbmt KB2467309 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 2467309
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