【发布时间】:2016-11-25 17:13:42
【问题描述】:
我有以下两个功能
void ParserData(List<DataObject> MyObjcets){
//loop over MyObjects
List<ResultObject> Results = new List<ResultObject> ();
foreach(var Obj in MyObjects){
//do some computation and add it to an instance of ResultObject
ResultObject R = new ResultObject();
Results.Add(R);
if(Results.count >= 2000){
//call a function that will insert Results to MYSQL DB
InsertDATA(Results);
//create empty Results list
Results = new List<ResultObject> ();
}
//
}
插入函数
void InsertDATA(List<ResultObject> Results){
foreach(var R in Results){
.....
//Insert Object to MYSQLDB
}
}
我正在考虑让这段代码更快,但我不确定最好的方法。我每 2000 年提交一次插入的原因是因为在那之后系统内存不足。 有没有办法在我发送要插入的数据后,我可以在插入我发送的数据时继续做更多的计算,而不是等到插入完成?
任何使此代码更快的建议将不胜感激。
【问题讨论】:
-
最好的建议是在你的程序上使用分析器,看看它实际花费的时间。
-
查看
dotTracejetbrains.com/profiler 有 30 天免费试用期 -
如果它很简单并且数据在同一个表中,你最好使用批量插入
标签: c# .net multithreading task