我刚刚收到一份代码交给了我。代码是用C#编写的,它每秒钟将实时数据插入到数据库中。数据在时间上累积,使数字变大。这个代码如何进一步优化?
数据在第二多次内更新,然后在第二个结果的末尾插入。
我们通过属性直接在第二个数据集行中寻址数据集。例如像这样的许多操作'datavaluerow.meanvalue + = mean;可能发生。 我们发现在执行内部转换之后,运行profiler的性能会降低性能,所以我们创建了2d数组进行更新,然后仅在第二个数据结束时将值分配给数据行。 我运行了一个分析器,发现它仍然花费很多时间(尽管比添加时经常访问数据行的时间少)。
是在第二的端exectued的代码如下
public void UpdateDataRows(int tick)
{
//ord
//_table1Values is of type decimal[][]
for (int i = 0; i < _table1Values.Length; i++)
{
_table1Values[i][(int)table1Enum.barDateTime] = tick;
table1Row[i].ItemArray = _table1Values[i].Cast<object>().ToArray();
}
// this process is done for other 10 tables
}
是否有进一步改进这种方法的一种方式。
你的分析显示大部分时间在哪里? – Oded 2010-06-27 08:51:11
将cast(int)table1Enum.barDateTime带出循环。 – 2010-06-27 08:51:25
@ Oded,大部分时间都在铸造操作中花费 – mustafabar 2010-06-27 09:01:31