德尔福(DataSnap)慢

时间:2012-09-10 12:24:06

标签: delphi datasnap

我最近开始在Delphi中使用DataSnap来生成一个RESTful Web服务。在跟踪了他自己的Marco Cantu和其他几个人在互联网上的指南之后,我成功地让整个'链'工作。

但速度有一个小问题;客户端现在可以将一个流(连同它的大小)发送到服务器(由于这里的错误DataSnap XE2 and TStream method parameters,它被读取到发送的大小),服务器将它重新组装成一个文件并保存在磁盘上。

但是对于3.66MiB文件,这需要50秒!

应该是这种情况吗?在服务器上我有:

try
   F := TFileStream.Create('written.dat', fmCreate);
   F.Position := 0;
   F.CopyFrom(Data, DataSize);
finally 
   F.Free; 

在客户端:

var
  Server: TServerMethods1Client;
  DBStream: TFileStream;
begin
  Server := TServerMethods1Client.Create(SQLConnection1.DBXConnection);
  try
    DBStream := TFileStream.Create('DataSnapServer.exe', fmOpenRead);
    DBStream.Position := 0;
    Showmessage(IntToStr(Server.SendData(DBStream, DBStream.Size)));
  finally
    Server.Free;

任何帮助表示赞赏!

干杯, 阿德里安

1 个答案:

答案 0 :(得分:1)

在服务器端,尝试调整BufferKBSize组件上的TDSHTTPWebDispatcher属性。可以在客户端上的TsqlConnection组件上找到相同的属性。