私が開発していますサイトのパフォーマンスを見ていたと私は私が書いたいくつかのコードに出くわした:上記のコードでメソッドの実行が
foreach (WorkItem wi in p.getWorkItems(dateFrom, dateTo))
{
someFunction(wi);
}
、p.getWorkItems
方法は毎回実行さありませんループは実行されますか?または、それは一度実行され、結果オブジェクトをメモリに保持し、オブジェクトを使用しているポインタをインクリメントするだけですか?その理由は、getWorkItems
は大量のシーン(比較、並べ替え、他のクエリ)をしているので、これを何度も実行しない方がよいでしょう。その場合は、私は以下のようにそれをやったほうが良いと思います:
List<WorkItem> workload = p.getWorkItems(dateFrom, dateTo);
for (int i = 0; i < workload.Count; i++)
{
someFunction(workload[i]);
}
それは、C#で書かれていますが、私は答えが最も類似の言語に適用されることを想定しています。..
'p.getWorkItems'が毎回実行される場合、' in'はどのように結果を反復処理しますか? –