Ich habe die folgenden zwei FunktionenWie kann die Code-Leistung erhöht werden? Multithread oder Aufgaben in C#?
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>();
}
//
}
Funktion einfügen
void InsertDATA(List<ResultObject> Results){
foreach(var R in Results){
.....
//Insert Object to MYSQLDB
}
}
Ich dachte, diesen Code schneller zu machen, aber ich bin nicht sicher, dass der beste Weg zu gehen. Der Grund, warum ich alle 2000 einfüge, liegt daran, dass das System danach keinen Speicher mehr hat. gibt es einen Weg, dass, nachdem ich die Daten, die eingefügt werden sollen, senden kann ich mehr Berechnungen ausführen, während die Daten, die ich gesendet habe, eingefügt werden, und nicht warten, bis die Einfügung abgeschlossen ist?
Alle Vorschläge, um diesen Code schneller zu machen, werden geschätzt.
Der beste Vorschlag ist, verwenden Sie einen Profiler auf Ihrem Programm und sehen, was es tatsächlich verbringen es ist Zeit. –
Check-out 'dotTrace' https://www.jetbrains.com/profiler/ Es gibt eine kostenlose 30-Tage-Testversion –
Wenn es das triviale und die Daten in der gleichen Tabelle ist, könnten Sie besser offff verwenden Batch-Einsätze – ferdyh