而在寻找一个asp.net(web服务)应用程序的性能,我们注意到,在IIS它会非常慢(38秒),比开发服务器(18秒),上。 运行我们注意到不同的是调用regex.Match的Visual Studio性能分析器(采样模式)? 在IIS它走的70%的时间,运行针对在dev的服务器相同的应用程序相同的测试,它走的总时间少于1%。
所以,任何人都可以解释的行为IIS和开发服务器之间的这种怪异的区别??? 我已经尝试过不同的应用程序池设置的东西......但没有任何帮助
而在寻找一个asp.net(web服务)应用程序的性能,我们注意到,在IIS它会非常慢(38秒),比开发服务器(18秒),上。 运行我们注意到不同的是调用regex.Match的Visual Studio性能分析器(采样模式)? 在IIS它走的70%的时间,运行针对在dev的服务器相同的应用程序相同的测试,它走的总时间少于1%。
所以,任何人都可以解释的行为IIS和开发服务器之间的这种怪异的区别??? 我已经尝试过不同的应用程序池设置的东西......但没有任何帮助
找到了!
这似乎是因为IIS在64位(和casinni在32位可能)运行它。 通过切换应用程序池使用32位,这也是在IIS快,复位回64位并再次缓慢。
通过对64位+正则表达式搜索速度慢,我还发现,人们已经发现了这个在2006年,也即它应该被固定在.NET 2.0中的SP(参见: http://blogs.msdn.com/b /bclteam/archive/2007/05/21/the-regexoptions-compiled-flag-and-slow-performance-on-64-bit-net-framework-2-0-josh-free.aspx )
不过我使用.NET 4.0,所以我也没有想到这个问题依然存在......
(StackOverflow上也看到: 正则表达式的Windows Server 2008上慢 )
顺便说一句,如果我不使用 RegexOptions.Compiled
创建正则表达式时, 还对64位执行快。 但我需要做一些基准测试,看看有什么不编译它的作用是在32位。