Forum: Datenbanken
Delphi
by Codehunter,
17. Sep 2018
Siehe Eingangsfrage. Man kommt ums Praxistesten gar nicht herum. Denn selbst wenn man die Datenbank komplett aus dem Multithreading raus lässt gibts immer noch mehrere Wege wie man verfahren kann. Zum Bsp. Ergebnisdatenmengen erstmal in Record-Arrays zwischenspeichern und dann in einem Rutsch im Mainthread in die Datenbank wuppen. Da hat man dann aber eine Menge Allokation. Oder man...
Forum: Datenbanken
Delphi
by Codehunter,
17. Sep 2018
Das ist mir alles klar. Die Frage dreht sich aber darum, wie man die Latenzen in solchen Szenarien drücken kann. Und da ist es sehr wohl interessant zu sehen, wie es sich in der Praxis verhält. Denn was nützt mir die schönste/aufwendigste Parallelisierung, wenn ich im Ergebnis vielleicht 10% Zeit gewinne? Um den Bogen zur Ausgangsfrage zu schließen: Ich müsste ja je Thread nicht nur das...
Forum: Datenbanken
Delphi
by Codehunter,
17. Sep 2018
In dem Zusammenhang ist mir jetzt aufgefallen, dass das Erzeugen einer TIdHTTP-Instanz eine Menge Zeit fressen kann. Das ergibt bei folgendem kleinen Test interessante Messwerte:procedure TForm1.Button1Click(Sender: TObject);
var
tasks: array of ITask;
I: Integer;
Startzeit: Integer;
begin
Startzeit := GetTickCount;
SetLength(tasks, 40);
for I := Low (tasks) to High (tasks)...
Forum: Datenbanken
Delphi
by Codehunter,
17. Sep 2018
Moin!
Ist es möglich bzw. sinnvoll, Datenbankoperationen (auch UPDATE, INSERT, DELETE) aus einem Thread/Task/whatever heraus zu tätigen? Ich bin an einem Themenblock dran, der sich eigentlich sehr gut für Parallelisierung eignen würde. Der ganze Aufgabenblock ist schon ordentlich gekapselt und erzeugt bereits seine eigenen Queries und Transactions. Ich müsste nur noch jedem Thread eine eigene...