2012-03-19 11 views
0

高性能C#プログラム(パフォーマンスはno1の関心事です)では、コードにはどのような犠牲がありますか?高性能コードと例外処理の記述

たとえば、例外処理がどのように変更されるのですか(例外がスローされる/例外がキャッチされる回数は同じですか?

コレクターが書かれた監視会社で働いていたので、私は尋ねます。

おかげ

+5

「パフォーマンスは第1の懸念事項です」パフォーマンスはどのように第1の懸念事項になりますか?あなたのプログラムが実際に有用で価値あることを実際に行っていることがもっと重要なのでしょうか?そうでなければ、 'while(true){}'と書いてそれを1日と呼ぶのはなぜですか? –

+0

私はあなたが何を意味するのか見ることができますが、収集するデータの量などを考えれば、それは単に優先順位が設定されている... – dotnetdev

答えて

1

自分でパフォーマンスを測定し、例外処理が停止し、コードを遅くどのくらい見ることができます。通常、例外がスローされると非常に無駄ですが、例外がスローされなければ、try ... catchは少しだけコードを遅くします。

もう一つのポイント:Linqは単純な反復速度が遅いです。

+0

RE Linq良い点私はLINQ to Sharepointでこれを気付きました。 – dotnetdev

0

例外処理が遅いです。デフォルトでは、Exceptionのインスタンスは、名前が意味するものであり、例外です。 しかし、それらがたくさん出現すると思われる場合は、オブジェクトをより少なく投げることを決定し、別の方法で論理例外を処理することができます。言い換えれば、彼らは期待された。

実際には予期しない場合は、スタックの早い段階で処理することができます。解決策は、boolまたはenum retValsを使用することです。例外を再試行すると、パフォーマンスが低下します。

1

例外は、例外的な場合にのみスローする必要があります。フロー制御に使用しないでください。正常な使用でデバッガの下でアプリケーションを実行できるようにすることが良い目標です。例外はスローされるべきではありません。

ハイパフォーマンスアプリでは、例外の費用は本当に例外的なものであれば、それほど懸念すべきではありません。

0

Exceptionは、例外的な状況を処理する最善の方法です。条件がある場合は、ifのような条件文で条件をチェックします。

これらの一般的なルールとは別に、パフォーマンスを維持するためにsacraficeにどのくらいのメンテナンス性がありますか?あなたはいつもアセンブラでコードを書くことができます。