Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
巨大なデータセットをメモリにロードしています。コードは基本的に DataTable をループし、DataRow からint変数に値をコピーします。何らかの理由で、ループ内で宣言した変数は、メソッドの先頭で宣言した変数よりもほぼ 2 倍高速に処理されます。
int
以下は、Ants Perf Profiler のスクリーンショットです。できるsiteID = (int) oDR[FIELD_SITE_ID]限り、ラインは前のラインのほぼ 2 倍遅くなります。なぜでしょうか?
siteID = (int) oDR[FIELD_SITE_ID]
それがoDR[FIELD_SITE_ID]ここで遅いのではないでしょうか?ループ内の変数に割り当ててから、それを変数に割り当ててみてくださいsiteID。私が正しければ、ペナルティがsideID割り当てから、から値を取得するステートメントに移動したことがわかりますoDR。
oDR[FIELD_SITE_ID]
siteID
sideID
oDR
int siteIDtmp = (int)oDR[FIELD_SITE_ID]; siteID = siteIDtmp;