分数をキャンセルする2つの数値のhcfを計算する簡単なループがあります。while文内の三項式をループごとに評価する
while条件内の三項式がすべてのループで再計算されていて、その前に一度だけ計算し、パフォーマンス目的の変数として保存する必要があるのだろうか?
public Fraction LowestForm()
{
int hcf = 1;
int counter =2;
while (counter <= (Numerator < Denominator ? Numerator : Denominator))
{
if (Numerator % counter == 0 && Denominator % counter == 0)
{
hcf = counter;
}
counter++;
}
return new Fraction(Numerator/hcf, Denominator/hcf);
}
は明確にする:私はRosylynコンパイラで主に心配
コンパイラがそのジッタを最適化しないとしても(私は思うが) –
C#のコンパイラは1つしかないのですか?そうでない場合、この質問に対する答えはどのコンパイラが使用されているかに依存しませんか?ちょうどそれを言及するために傷つくことはありません。 – Rainbolt
@Rainbolt動作は言語仕様で定義されており、言語の任意のコンパイラはC#コンパイラと見なされるためにはそれを尊重する義務があります。 – Servy