1

This is a duplicate of Regex slow on Windows Server 2008, but since the accepted answer is not an actual answer, but a workaround, I'm re-asking the question.

The following code:

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);

runs in:

  • 5 seconds when run in 32-bit on my desktop
  • 13 seconds when run in 64-bit on my desktop
  • 5 seconds when run in 32-bit on my windows 2008 r2 server
  • 130 seconds !? when run in 64-bit on my windows 2008 r2 server

This is using .net 4.5.1 on both the desktop and windows 2008 r2 server. This makes no sense to me. What in the world can cause such a slow down on the windows 2008 server? And how can I make it run as fast as my desktop in 64-bit.

Community
  • 1
  • 1
edeboursetty
  • 5,669
  • 2
  • 40
  • 67
  • Of course you tested on release mode for all plateform, and the CPUs are quite the same processors? – Thomas Ayoub Oct 04 '16 at 09:23
  • *This is a duplicate of Regex slow on Windows Server 2008, but since the accepted answer is not an actual answer, but a workaround, I'm re-asking the question.* => That's why bounties exist. – Thomas Ayoub Oct 04 '16 at 09:24
  • @ThomasAyoub: yes, similar processors, using Release, Any CPU. – edeboursetty Oct 04 '16 at 10:28

0 Answers0