Hello, You are updating your progress bar and memo in the event, each time it is called. This probably slow down everything. Please retest without any GUI interaction during transfer.
-- francois.pie...@overbyte.be The author of the freeware multi-tier middleware MidWare The author of the freeware Internet Component Suite (ICS) http://www.overbyte.be -----Message d'origine----- De : TWSocket [mailto:twsocket-boun...@lists.elists.org] De la part de brian - Envoyé : mardi 26 avril 2016 03:58 À : ICS support mailing Objet : Re: [twsocket] SSL post extremely slow Did the test with a 4,5MB file, non-SSL Firefox: 2.6s Saved Uploaded File OK New File Name: d:\tempwork\telecom\uploads\20160426-021729_Aion 2016.Apr.21 - 10.57.48.png File Size: 4,553,987 Upload Duration: 2.6 secs Speed: 1,754,908 chars/sec Upload FileName: Aion 2016.Apr.21 - 10.57.48.png FileTitle: aion ss test Post URL: http://www1.telecom-tariffs.co.uk/testing/uploadfile.htm ICS: 34.1s POST /testing/uploadfile.htm HTTP/1.0 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */* Referer: http://www1.telecom-tariffs.co.uk/testing/uploadfile.htm Content-Type: multipart/form-data; boundary=--------------------147712359214935 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Host: www1.telecom-tariffs.co.uk Content-Length: 4554186 34133ms unit Unit1; > > interface > > uses > Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, > System.Classes, Vcl.Graphics, > Vcl.Controls, Vcl.Forms, Vcl.Dialogs, OverbyteIcsWndControl, > OverbyteIcsHttpProt, Vcl.StdCtrls, Vcl.ComCtrls, > > MultipartBuilder; > > type > TForm1 = class(TForm) > Button1: TButton; > Button2: TButton; > HttpCli1: THttpCli; > ProgressBar1: TProgressBar; > Memo1: TMemo; > procedure Button1Click(Sender: TObject); > procedure HttpCli1SendData(Sender: TObject; Buffer: Pointer; Len: > Integer); > procedure HttpCli1BeforeHeaderSend(Sender: TObject; const Method: > string; Headers: TStrings); > procedure HttpCli1SendEnd(Sender: TObject); > private > { Private declarations } > public > { Public declarations } > end; > > var > Form1: TForm1; > x: Int64; > > implementation > > {$R *.dfm} > > procedure TForm1.Button1Click(Sender: TObject); Var fil: AnsiString; > mp: TMultiPartObject; > fl: string; > tm: TMemoryStream; > Const cT = '--------------------147712359214935'; > begin > // Fill multipart data+file > fl := 'z:\Aion 2016.Apr.21 - 10.57.48.png'; > mp := TMultiPartObject.Create(cT); > tm := TMemoryStream.Create; > tm.LoadFromFile(fl); > ProgressBar1.Max := tm.Size; > With mp do begin > AddFileFromStream('image',ExtractFileName(fl),'image/png',tm); > CloseData; > fil := GetFile; > end; > mp.Free; > > x := GetTickCount; > With HttpCli1 do begin > url := 'http://www1.telecom-tariffs.co.uk/testing/uploadfile.htm'; > SendStream := TMemoryStream.Create; > SendStream.Write(fil[1],length(fil)); > SendStream.Seek(0,0); > RcvdStream := TMemoryStream.Create; > Timeout := 5; > Agent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) > Gecko/20100101 Firefox/45.0'; > ContentTypePost := 'multipart/form-data; boundary='+cT; > Reference := > 'http://www1.telecom-tariffs.co.uk/testing/uploadfile.htm > '; > try > PostAsync; > except > On E:Exception do ShowMessage(E.Message); > end; > end; > end; > > procedure TForm1.HttpCli1BeforeHeaderSend(Sender: TObject; const Method: > string; Headers: TStrings); > begin > Memo1.Lines.Add(Headers.Text); > end; > > procedure TForm1.HttpCli1SendData(Sender: TObject; Buffer: Pointer; Len: > Integer); > begin > ProgressBar1.Position := ProgressBar1.Position + Len; end; > > procedure TForm1.HttpCli1SendEnd(Sender: TObject); begin > With HttpCli1 do begin > SendStream.Free; > RcvdStream.Free; > end; > Memo1.Lines.Add(''); > Memo1.Lines.Add(IntToStr(GetTickCount-x)+'ms'); > end; > > end. > On Mon, Apr 25, 2016 at 7:12 PM, Angus Robertson - Magenta Systems Ltd < an...@magsys.co.uk> wrote: > > Are there any known issues with SslHttpCli for sending data? I've > > observed the following: > > Sending a 3MB picture to imgur: > > * with ICS/OpenSSL: takes ~27 seconds > > Done some testing with a view to investigating this issue, but not > currently sure it's worth any more time. > > I'm using an updated version of the sample OverbyteIcsHttpPost against > the ICS web server (no SSL). > > With both running on my PC: > File Size: 20,450,630 > Upload Duration: 204 msecs > Speed: 100,248,186 chars/sec > Upload FileName: speed20meg.zip > > With the ICS web server running on my public server, over FTTC with a > 10Mbit/sec upload speed, from ICS: > File Size: 20,450,630 > Upload Duration: 17.56 secs > Speed: 1,164,349 chars/sec > Upload FileName: speed20meg.zip > > Using Firefox to the same public server: > File Size: 20,450,630 > Upload Duration: 17.53 secs > Speed: 1,166,407 chars/sec > Upload FileName: speed20meg.zip > > You can try the public server yourself: > > http://www1.telecom-tariffs.co.uk/testing/uploadfile.htm or > https://www1.telecom-tariffs.co.uk/testing/uploadfile.htm > > and it will report the upload speeds, as copied above. Using SSL and > Firefox, got the same speeds exactly, not got an SSL version of the > ICS POST sample, yet. The web server is running OpenSSL 1.1.0 beta 5 > and unreleased ICS versions, had to change the web server component to > get sensible speed measurements. > > https://www1.telecom-tariffs.co.uk/serverinfo.htm > > For completeness, I will make the HTTP client buffers configurable in > size, but I really don't expect to see any real difference in upload > speed, it's seems to be maxed out already. And this is through two > Sonicwalls that slow things down. > > Angus > > > > > -- > To unsubscribe or change your settings for TWSocket mailing list > please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket > Visit our website at http://www.overbyte.be > -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be