相关疑难解决方法(0)

为什么Math.DivRem效率低下?

在我的计算机中,此代码需要17秒(1000万次):

static void Main(string[] args) {
   var sw = new Stopwatch(); sw.Start();
   int r;
   for (int i = 1; i <= 100000000; i++) {
      for (int j = 1; j <= 10; j++) {
         MyDivRem (i,j, out r);
      }
   }
   Console.WriteLine(sw.ElapsedMilliseconds);
}

static int MyDivRem(int dividend, int divisor, out int remainder) {
   int quotient = dividend / divisor;
   remainder = dividend - divisor * quotient;
   return quotient;
}
Run Code Online (Sandbox Code Playgroud)

而Math.DivRem需要27秒.

.NET Reflector为我提供了Math.DivRem的代码:

public static int DivRem(int a, int b, out …
Run Code Online (Sandbox Code Playgroud)

.net optimization

34
推荐指数
3
解决办法
5688
查看次数

标签 统计

.net ×1

optimization ×1