私は、サードパーティのアウトソーシング会社が私たちに与えられ、この小さな宝石に偶然出会ったいくつかのコードを見直しました:c#:このコードは最適化されますか?
try
{
int i = strOriginalData.IndexOf("\r\n");
////System.Diagnostics..EventLog.WriteEntry("i", i.ToString());
}
catch (System.Exception ex)
{
////System.Diagnostics..EventLog.WriteEntry("ex", ex.Message);
}
私の質問は、コンパイラは完全にこれを最適化するのですか?私はこの方法の一番上に移動したため
try
{
i = this.strOriginalData.IndexOf("\r\n");
}
catch (Exception exception1)
{
ex = exception1;
}
宣言をし、Exception型の追加の宣言は、メソッドの一番上にある:私は反射でコンパイルアセンブリを見てみると、それはこのことを示しています。
このコードは実際に何もしないので、コンパイラがこのコードが何もせず、最適化できることを知るには十分にスマートなのかしらと思いました。
コンパイラはそれを最適化しませんが、これらの種類のものはパフォーマンスの面で悪いことがあります。コードがスローされて食べられる状態になると、タイトなループのために徹底したperfノックオンが行われます。そして静かにもちろん... –
@chiba:私はパフォーマンスの問題、正確性の問題の多くを考慮しませんでした。 –
@Henk私はループを1時間に何百マイルも行くと思っている。例外を捕まえて嚥下する。これまで何度もやっていた "デバッグ"コードを見たことがないなら、私は言及しません。 –