为什么实例化变量内联会导致更快的代码?

时间:2013-02-19 22:24:15

标签: c# .net

我正在将大量数据集加载到内存中。代码基本上循环遍历DataTable,并将DataRow中的值复制到int个变量中。由于某种原因,我在循环过程中声明的变量几乎是在方法顶部声明的变量的两倍。

以下是Ants Perf Profiler的截图。尽可能地,行siteID = (int) oDR[FIELD_SITE_ID]几乎是前一行的两倍。为什么会这样?

enter image description here

1 个答案:

答案 0 :(得分:0)

难道不是oDR[FIELD_SITE_ID]这里有什么缓慢的吗?尝试将其分配给循环中的变量,然后将其分配给siteID变量。如果我是正确的,您应该会看到惩罚从sideID作业转移到从oDR获取价值的声明。

int siteIDtmp = (int)oDR[FIELD_SITE_ID];
siteID = siteIDtmp;