0

巨大なデータセットをメモリにロードしています。コードは基本的に DataTable をループし、DataRow からint変数に値をコピーします。何らかの理由で、ループ内で宣言した変数は、メソッドの先頭で宣言した変数よりもほぼ 2 倍高速に処理されます。

以下は、Ants Perf Profiler のスクリーンショットです。できるsiteID = (int) oDR[FIELD_SITE_ID]限り、ラインは前のラインのほぼ 2 倍遅くなります。なぜでしょうか?

ここに画像の説明を入力

4

1 に答える 1

0

それがoDR[FIELD_SITE_ID]ここで遅いのではないでしょうか?ループ内の変数に割り当ててから、それを変数に割り当ててみてくださいsiteID。私が正しければ、ペナルティがsideID割り当てから、から値を取得するステートメントに移動したことがわかりますoDR

int siteIDtmp = (int)oDR[FIELD_SITE_ID];
siteID = siteIDtmp;
于 2013-02-19T22:28:40.973 に答える