CLR优化器有多好?

时间:2011-12-15 15:59:09

标签: .net clr optimization

我对CLR的优化器有点失望。假设我有以下代码:

int i = 0;
for (int j = 0; j < 10; ++j)
  ++i;
Console.WriteLine("{0}", i);

很明显,在循环结束时,局部变量'i'应该具有值10.现代C ++编译器会优化这段代码:

Console.WriteLine("{0}", 10);

令我惊讶的是,CLR JIT编译器看起来并不那么聪明。当我编译上面的代码时,它迭代10次而不是直接赋值。多线程在这里没有问题,因为所有数据访问都在堆栈上,因此特定于线程。

有人可以指出CLR优化器有多聪明吗?当编译器没有优化对变量/字段的访问时,我没有看到volatile关键字的用法。

0 个答案:

没有答案