using System;
namespace ConsoleApplication1
{
class TestMath
{
static void Main()
{
double res = 0.0;
for(int i =0;i<1000000;++i)
res += System.Math.Sqrt(2.0);
Console.WriteLine(res);
Console.ReadKey();
}
}
}
通过将此代码与C++版本进行基准测试,我发现性能比C ++版本慢了10倍。我对此没有问题,但这引出了以下问题:
似乎(经过一些搜索)JIT编译器不能像C++编译器那样优化此代码,即只需调用一次sqrt并对其应用*1000000。
有没有办法强制JIT这样做?