Nun sind wir ja fast fertig, aber wenn's so weitergeht, dann laufe ich auch über.
PS:
Endlich mal einer, der meine Probleme kennt
http://cc.embarcadero.com/item/27391
darin hab ich z.B. etwas gefunden, ala "große Streams übertragen" und so wie es aussieht, hatte er in etwa die selbe Idee, um das Problem zu lösen.
Aber wie bei vielen anderen Codes (auch die von Dr. Bob) bin ich mir sicher, daß er nicht nach Speicherlecks ausschau gehalten hat.
Dr.Bob hat wenigstens fast nur die versteckten Speicherlecks übersehn, aber das sowas hier ist ja wohl eindeutig:
Delphi-Quellcode:
procedure TFrmMain.Button4Click(Sender: TObject);
var
Sm: TDSServerMethodsClient;
begin
Sm := TDSServerMethodsClient.Create
(DMClientContainer.MyDSServer.DBXConnection);
LBDateTime.Caption := DateTimeToStr(Sm.GetServerDateTime);
end;
// Sm wird jedesmal neu erstellt und nie freigegeben
procedure TFrmMain.Button9Click(Sender: TObject);
begin
Result := TJSONFalse.Create;
...
for i := 0 to LJSONObject.Size - 1 do
begin
...
Result := TJSONTrue.Create; // wird immer wieder neu erstellt
end;
...
end;
Da findet man schon fast nirgendwo ordentlich Hilfe, bei diesem suuuuuuper Produkt Namens DataSnap und wenn, dann muß man erstmal die Fehler beheben.
Nichts gegen diese Leute persönlich, aber wenn das wirklich jemand ernsthaft einsetzen würde, dann wären doch viele Fehler schon längst aufgefallen, oder meint ihr nicht.
Wobei hier vermutlich der Garbage Collector im C#, PHP, Java oder wo DataSnap noch nutzbar ist, vermutlich derartige Speicherlecks behebt.
Auch wenn die Grundidee vom DataSnap ja garnicht mal soooooo schlecht ist.