1. ホーム
  2. c#

[解決済み] C#のtry/catchの本当のオーバーヘッドは何ですか?

2023-01-22 21:44:11

質問

try/catchはオーバーヘッドを追加するので、プロセスフローを制御する良い方法ではないことは知っていますが、このオーバーヘッドはどこから来て、実際にどのような影響があるのでしょうか?

どのように解決するのですか?

私は言語実装の専門家ではありませんが (だからこれを大目に見てください)、最大のコストの 1 つは、スタックを展開してスタック トレースのためにそれを保存することだと思います。 これは例外がスローされたときにのみ発生すると思いますが (しかし、私は知りません)、もしそうなら、これは例外がスローされるたびにきちんとした大きさの隠れたコストになります... つまり、コード内のある場所から別の場所にジャンプするだけとは異なり、多くのことが起こっているのです。

EXCEPTIONAL動作のために例外を使用している限り、問題ないと思います(つまり、プログラムを通じて典型的な、期待される経路ではありません)。