アプリをリファクタリングして高速化しています。そのためのヒントを探していたところ、次のステートメントを見つけました。
「ForEach は For ループ内のコードを単純化できますが、重いオブジェクトであり、For を使用して記述されたループよりも低速です。」
本当?それが書かれたときに真実だった場合、それは今日でも真実ですか、それともパフォーマンスを改善するために foreach 自体がリファクタリングされていますか?
同じソースからのこのヒントについて同じ質問があります。
「可能な場合は、コレクションの代わりに配列を使用してください。配列は通常、特に値型の場合により効率的です。また、可能な場合はコレクションを必要なサイズに初期化してください。」
アップデート
データベース操作に数秒かかっていたため、パフォーマンスのヒントを探していました。
「using」ステートメントは時間の浪費であることがわかりました。
for ループと "using" を逆にすることで、パフォーマンスの問題を完全に解決しました (もちろん、これを機能させるにはリファクタリングが必要でした)。
糖蜜よりも遅いコードは次のとおりです。
for (int i = 1; i <= googlePlex; i++) {
. . .
using (OracleCommand ocmd = new OracleCommand(insert, oc)) {
. . .
InsertRecord();
. . .
弾丸よりも高速なコードは次のとおりです。
using (OracleCommand ocmd = new OracleCommand(insert, oc)) {
for (int i = 1; i <= googlePlex; i++) {
. . .
InsertRecord();
. . .