这是Regex slow on Windows Server 2008的副本,但由于接受的答案不是真正的答案,而是一种解决方法,我正在重新提出这个问题。
以下代码:
var complex = @"^(([^<>()[\]\\.,;:\s@""]+"
+ @"(\.[^<>()[\]\\.,;:\s@""]+)*)|("".+""))@"
+ @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
+ @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+"
+ @"[a-zA-Z]{2,}))$";
var x = Stopwatch.StartNew();
var b = false;
for (var i = 0; i < 1000; i++)
{
Regex r = new Regex(complex, RegexOptions.Compiled | RegexOptions.IgnoreCase);
b = b || r.IsMatch("abc");
}
Console.WriteLine((Environment.Is64BitProcess ? "64-bit: " : "32-bit: ") + x.ElapsedMilliseconds);
运行于:
这是在桌面和Windows 2008 r2服务器上使用.net 4.5.1。这对我来说毫无意义。世界上哪些因素会导致Windows 2008服务器出现这么慢?如何让它以64位的速度运行到我的桌面。