C# の例外処理メカニズムのパフォーマンスのオーバーヘッドは、スタックが浅い場合には重大ではありませんが、パフォーマンスの低下には依然として注意が必要です。
最近の研究では、テスト プログラムを通じて、100 万件の例外を処理するのに約 29914 ミリ秒かかることが示されました。これは、1 ミリ秒あたり約 33 件の例外に相当します。それでも、ほとんどの場合、戻りコードの代わりに例外を使用することで十分効率的です。
ただし、例外の処理は戻りコードよりも少なくとも 30,000 倍遅いことに注意することが重要です。さらに、これらのデータは最小限の推定値にすぎず、実際のアプリケーション シナリオでは追加のパフォーマンス オーバーヘッドが発生します。
テストは、Intel Core2 Duo T8100 @ 2.1 GHz プロセッサを搭載したラップトップで、.NET 4.0 フレームワーク、リリース ビルドを使用し、デバッガー (パフォーマンスに大きな影響を与える可能性がある) を除いて実施されました。
以下は実験で使用したテストコードです:
<code class="language-csharp">static void Main(string[] args) { int iterations = 1000000; Console.WriteLine("Starting " + iterations.ToString() + " iterations...\n"); var stopwatch = new Stopwatch(); // 测试异常 stopwatch.Reset(); stopwatch.Start(); for (int i = 1; i <= iterations; i++) { try { // 模拟异常抛出 throw new Exception(); } catch (Exception) { // 捕获异常 } } stopwatch.Stop(); Console.WriteLine("Exceptions took: " + stopwatch.ElapsedMilliseconds + "ms"); // 测试返回码 (此处应添加返回码测试代码) }</code>
(注: 元のテキストにはリターン コードのテスト コード部分がありません。プレースホルダーはここに保持されます)
以上がC# 例外はリターン コードよりどれくらい遅いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。