我最近开始在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;
任何帮助表示赞赏!
干杯, 阿德里安
答案 0 :(得分:1)
在服务器端,尝试调整BufferKBSize
组件上的TDSHTTPWebDispatcher
属性。可以在客户端上的TsqlConnection
组件上找到相同的属性。