質問

私は実際にはC#または誰が本当に言語の内部を理解するには、リアルタイムのプログラミングをして誰かからの応答をたいと思います。

私は例外は通常の処理を処理するために使用すべきではないことを知っているが、唯一のエラー条件を検出します。そのトピックに関する議論の多くがあります。

私は単に(プログラムはとにかく終了する必要がありますしない限り、例外をキャッチすることはありません)代わりにtry / catchブロックを持つから任意の実行時のスローダウンがあるかどうかを知りたいのです。 try / catchブロックを繰り返し呼び出さなければなりません関数内です。私は、最小限のコストがある疑います。

のコストは、CPUサイクル、または他のタスク(浮動小数点乗算と同じコスト)、または別の方法の観点で定量化することができますか?

私たちは、Windows XPでMicrosoft C#.NET 3.5を使用します。

役に立ちましたか?

解決

彼らがスローされない限り、

.NET例外は非常に、非常に低いオーバーヘッドコストを持っています。代わりにtry / catchブロックを持つことは非常に最小限のパフォーマンスへの影響を持つことになります。私は場所に例外処理を有することにも非常に速く、タイトなループでは、ほとんど影響は認められません。

しかし、.NETの例外は、彼らが投げているときに、非常に高価です。彼らは、あなたが他の多くの言語よりも、それらをスローする場合、パフォーマンスに大きな影響が大きい傾向にあります。これは、など、例外が作成されたときに収集されたフルスタック情報に起因してます。

このような例外処理は、より高いコストを持っていますが、投げは実際にかなりパフォーマンスでのpython、などいくつかの他の言語とは逆の動作です。

あなたが心配している場合は、

しかし、私はあなたのルーチンのプロファイリングを提案し、それを自分でテストします。これは、パフォーマンスのプロファイリングのかなり後に私の経験をされています。あなた自身のコードベースに測定するための置換はありません。

他のヒント

ここでトライキャッチのパフォーマンスへの影響の評価指標との良好な議論、、。

てみてください/ catchブロック傷つけるパフォーマンス例外がスローされていないときですか

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top