「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > `for` vs.` foreach`ループ.net:どちらがより速いですか?

`for` vs.` foreach`ループ.net:どちらがより速いですか?

2025-01-30に公開
ブラウズ:888

in in foreach パフォーマンス比較の比較:どちらがより速いですか?

`For` vs. `Foreach` Loops in .NET: Which is Faster?
C#およびその他の.NET言語では、円形構造の反復コレクションを選択するときに、サイクルタイプのパフォーマンスが高いことがよくあります。一般に

については

と見なされますが、サイクル foreach は高速ですが、実際のパフォーマンスはコレクションタイプと特定のシーンによって異なる場合があります。

Patrick Smacchiaが実施した経験的テストによると、次のパフォーマンス比較:

on

on

list

on genericリストの
    for
  • ] foreach サイクルよりもわずかに遅いです。パフォーマンスの違いは約2回です。 配列上の for for on the Array: generic and genericアレイでは、のパフォーマンスは
  • よりも著しく高くなります。速度は約2回増加します。
  • array の配列の配列のの配列の配列の配列] collection foreach
  • は5倍速い
  • パフォーマンスに影響する要因 for foreach のパフォーマンスの違いは、次の要因に起因する可能性があります。
  • 反復オーバーヘッド:
foreach

サイクルには、実行時間に影響する列挙プロセスに関連する追加のオーバーヘッドがあります。

最適化:

パフォーマンスの最適化後、他のコレクションタイプよりも早く要素にアクセスできます。 コンパイラの最適化:コンパイラは、パフォーマンスを改善するために foreach

foreachよりも効果的に最適化される場合があります。
  • 結論は
  • は通常、.NETで繰り返されるとより良いパフォーマンスが提供されますが、実際の速度差は特定のコレクションの種類とシーンに依存する場合があります。パフォーマンスに敏感なアプリケーション(ミリ秒あたり非常に重要)の場合、さまざまな種類のサイクルのベンチマークテストを実施し、最適な実行速度のサイクルを選択することをお勧めします。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3