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 を 1 回呼び出して *1000000 を適用するだけです。
JITにそれを強制する方法はありますか?