Datasnap REST Server увеличение использования памяти: как освободить память результатов ServerMethods? - PullRequest
0 голосов
/ 17 марта 2020

В Delphi В проекте XE10 Datasnap REST для передачи наборов данных на сторону клиента используется TFDJSONDataSets.

Жизненный цикл: Сервер

Проблема заключается в том, что использование памяти сервера увеличивается для каждого вызова, и я не могу найти решение для освобождения памяти результатов наборов данных.

Пример:

Сторона сервера:

function TServerMethods1.GetSomeDataSet: TFDJSONDataSets;  
var mt: TFDMemTable;
begin
  mt:= TFDMemTable.Create(nil); 
  result:= TFDJSONDataSets.Create;
  //load mt data...
  TFDJSONDataSetsWriter.ListAdd(result, mt);
end;

Сторона клиента

function TClientModule1.GetSomeDataSet: TFDMemTable;
var ds: TFDJSONDataSets;
begin
  result:= TFDMemTable.Create(nil);  
  ds:= ServerMethodsClient.GetSomeDataSet();
  result.AppendData(TFDJSONDataSetsReader.GetListValue(ds, 0));
  result.Open;
end;

Каждый вызов TServerMethods1.GetSomeDataSet увеличивает использование памяти сервером приложений. Как правильно это исправить?

Спасибо

...