我刚收到一个代码交给我。该代码是用 C# 编写的,它每秒将实时数据插入数据库。数据是及时积累的,这使得数字很大。
数据在第二次内更新多次,然后在第二个结果结束时被取出并插入。
我们曾经通过属性直接在第二个内处理数据集行。例如像这样的许多操作 'datavaluerow.meanvalue += mean; 可以发生。我们发现这会在运行分析器后降低性能,因为内部转换完成,因此我们创建了 2d 小数数组,在其上执行更新,然后仅在第二个结束时将值分配给数据行。我运行了一个分析器,发现它仍然需要很多时间(尽管加起来比频繁访问数据行所花费的时间要少)。
秒尾执行的代码如下
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
}
有没有办法进一步改进这种方法。