[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: httpapi speed



Scott,

I implemented the changes you suggested in my test program but unfortunatly the performance didn't impoved at all. 

To further eliminate any other issues I may have I used a toString procedure that does nothing (just returns the length) and I'm reuqsting a simple static htm file that has only "pong" as a contents (4 bytes). So I'm simply calling "http://192.168.101.5/ping.htm";.

Here is a log file of the requests, it seems that most of the time is spent receiving the data from the web server ("recvresp() entered":


HTTPAPI Ver 1.25beta2 released 2012-03-06
OS/400 Ver V6R1M0


2014-05-30-11.48.35.494000 http_persist_open(): entered
2014-05-30-11.48.35.494000 http_long_ParseURL(): entered
2014-05-30-11.48.35.494000 DNS resolver retrans: 2
2014-05-30-11.48.35.494000 DNS resolver retry  : 2
2014-05-30-11.48.35.494000 DNS resolver options: x'00000136'
2014-05-30-11.48.35.494000 DNS default domain: WESTFALIA.NET
2014-05-30-11.48.35.494000 DNS server found: 192.168.101.2
2014-05-30-11.48.35.494000 DNS server found: 192.168.101.14
2014-05-30-11.48.35.495000 http_persist_get(): entered
2014-05-30-11.48.35.495000 http_persist_req(GET) entered.
2014-05-30-11.48.35.495000 http_long_ParseURL(): entered
2014-05-30-11.48.35.495000 do_oper(GET): entered
2014-05-30-11.48.35.495000 There are 0 cookies in the cache
GET /ping.htm HTTP/1.1
Host: 192.168.101.5
User-Agent: http-api/1.24


2014-05-30-11.48.35.495000 recvresp(): entered
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Fri, 30 May 2014 07:45:28 GMT
Accept-Ranges: bytes
ETag: "a895b20db7bcf1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Fri, 30 May 2014 09:48:35 GMT
Content-Length: 4


2014-05-30-11.48.35.696000 SetError() #13: HTTP/1.1 200 OK
2014-05-30-11.48.35.696000 recvresp(): end with 200
2014-05-30-11.48.35.696000 recvdoc parms: identity 4
2014-05-30-11.48.35.696000 header_load_cookies() entered
2014-05-30-11.48.35.696000 recvdoc(): entered
2014-05-30-11.48.35.696000 SetError() #0:
pong
2014-05-30-11.48.35.696000 http_persist_get(): entered
2014-05-30-11.48.35.696000 http_persist_req(GET) entered.
2014-05-30-11.48.35.696000 http_long_ParseURL(): entered
2014-05-30-11.48.35.696000 do_oper(GET): entered
2014-05-30-11.48.35.696000 There are 0 cookies in the cache
GET /ping.htm HTTP/1.1
Host: 192.168.101.5
User-Agent: http-api/1.24


2014-05-30-11.48.35.696000 recvresp(): entered
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Fri, 30 May 2014 07:45:28 GMT
Accept-Ranges: bytes
ETag: "a895b20db7bcf1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Fri, 30 May 2014 09:48:35 GMT
Content-Length: 4


2014-05-30-11.48.35.912000 SetError() #13: HTTP/1.1 200 OK
2014-05-30-11.48.35.912000 recvresp(): end with 200
2014-05-30-11.48.35.912000 recvdoc parms: identity 4
2014-05-30-11.48.35.912000 header_load_cookies() entered
2014-05-30-11.48.35.912000 recvdoc(): entered
2014-05-30-11.48.35.912000 SetError() #0:
pong
2014-05-30-11.48.35.912000 http_persist_get(): entered
2014-05-30-11.48.35.912000 http_persist_req(GET) entered.
2014-05-30-11.48.35.912000 http_long_ParseURL(): entered
2014-05-30-11.48.35.912000 do_oper(GET): entered
2014-05-30-11.48.35.912000 There are 0 cookies in the cache
GET /ping.htm HTTP/1.1
Host: 192.168.101.5
User-Agent: http-api/1.24


2014-05-30-11.48.35.912000 recvresp(): entered
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Fri, 30 May 2014 07:45:28 GMT
Accept-Ranges: bytes
ETag: "a895b20db7bcf1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Fri, 30 May 2014 09:48:35 GMT
Content-Length: 4


2014-05-30-11.48.36.115000 SetError() #13: HTTP/1.1 200 OK
2014-05-30-11.48.36.115000 recvresp(): end with 200
2014-05-30-11.48.36.115000 recvdoc parms: identity 4
2014-05-30-11.48.36.115000 header_load_cookies() entered
2014-05-30-11.48.36.115000 recvdoc(): entered
2014-05-30-11.48.36.115000 SetError() #0:
pong
2014-05-30-11.48.36.115000 http_persist_get(): entered
2014-05-30-11.48.36.115000 http_persist_req(GET) entered.
2014-05-30-11.48.36.115000 http_long_ParseURL(): entered
2014-05-30-11.48.36.115000 do_oper(GET): entered
2014-05-30-11.48.36.115000 There are 0 cookies in the cache
GET /ping.htm HTTP/1.1
Host: 192.168.101.5
User-Agent: http-api/1.24

-----Original Message-----
From: ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx [mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Scott Klement
Sent: Wednesday, May 28, 2014 7:25 PM
To: HTTPAPI and FTPAPI Projects
Subject: Re: httpapi speed

Peter,

When you're connecting to the same server repeatedly, I would recommend using the persistent APIs.  They have the ability to create a single connection, and then re-use that connection for multiple requests.  This should greatly improve performance.


D comm            s               *


  /free

      comm = http_persist_open( url );

      if comm = *null;
         http_crash();
      endif;

      for x = 1 to 1000;

         rci = http_persist_get( comm: url: 0: %paddr( toString ));

         if rci <> 1;
          // handle error
         endif;

      endfor;

      http_persist_close(comm);


On 5/28/2014 5:24 AM, Sawatzki, Peter wrote:
> I'm unsure whether we are doing something wrong: we are using httpapi successfully in several different projects however I'm wondering why the AS/400 is much slower than for example a simple PC that issues a request.
>
> To nail this down I wrote a simple web service that can be called with 
> a GET and that returns a fixed string. The get is called with this 
> code
>
> Rci = http_url_get_raw( Url : 0 : %PAddr( toString ) );
>
> in a loop 1000 times.
>
> On the PC (client) side I have a simple Delphi app that does
>
>   For i:= 1 to 1000 do Idhttp.get(Url);
>
> Where URL is 
> http://192.168.101.27/dwhsvc/dwhsvc.dll/datasnap/rest/TServermethods/p
> ing
>
> And the service responds with "pong". 192.168.101.27 is located in the same subnet as the AS/400.
>
> The AS/400 takes 210 seconds to issue 1000 calls, the PC takes less than two seconds (or 13 seconds for 10,000 calls).
>
> Any idea what I'm doing wrong on the AS/400 side ?
>
> Peter
>
>
>
> ----------------------------------------------------------------------
> - This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> ----------------------------------------------------------------------
> -
>

-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------