[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: httpapi speed
Try running it without debug turned on.
Charles
On Fri, May 30, 2014 at 7:45 AM, Sawatzki, Peter
<[1]Sawatzki@xxxxxxxxxxxx> wrote:
I added http_dmsg calls before and after comm_lineread and it seems
that the delay is during reading the first line returned from the
server:
HTTPAPI Ver 1.25beta2 released 2012-03-06
OS/400 Ver V6R1M0
[2]2014-05-30-13.15.01.574000 New iconv() objects set, PostRem=819.
PostLoc=0. ProtRem=819. ProtLoc=0
[3]2014-05-30-13.15.01.555000 http_persist_open(): entered
2014-05-30-13.15.02.173000 http_long_ParseURL(): entered
2014-05-30-13.15.02.187000 DNS resolver retrans: 2
2014-05-30-13.15.02.187000 DNS resolver retry �: 2
2014-05-30-13.15.02.187000 DNS resolver options: x'00000136'
2014-05-30-13.15.02.187000 DNS default domain: [4]WESTFALIA.NET
[5]2014-05-30-13.15.02.187000 DNS server found: 192.168.101.2
[6]2014-05-30-13.15.02.187000 DNS server found: 192.168.101.14
2014-05-30-13.15.02.189000 http_persist_get(): entered
2014-05-30-13.15.02.190000 http_persist_req(GET) entered.
2014-05-30-13.15.02.190000 http_long_ParseURL(): entered
2014-05-30-13.15.02.190000 do_oper(GET): entered
2014-05-30-13.15.02.207000 There are 0 cookies in the cache
GET /ping.htm HTTP/1.1
Host: 192.168.101.5
User-Agent: http-api/1.24
[7]2014-05-30-13.15.02.208000 recvresp(): entered
[8]2014-05-30-13.15.02.208000 before comm_lineread
HTTP/1.1 200 OK
2014-05-30-13.15.02.491000 after comm_lineread
2014-05-30-13.15.02.491000 before comm_lineread
Content-Type: text/html
2014-05-30-13.15.02.491000 after comm_lineread
2014-05-30-13.15.02.491000 before comm_lineread
Last-Modified: Fri, 30 May 2014 07:45:28 GMT
[9]2014-05-30-13.15.02.491000 after comm_lineread
[10]2014-05-30-13.15.02.491000 before comm_lineread
Accept-Ranges: bytes
[11]2014-05-30-13.15.02.492000 after comm_lineread
2014-05-30-13.15.02.492000 before comm_lineread
ETag: "a895b20db7bcf1:0"
2014-05-30-13.15.02.492000 after comm_lineread
2014-05-30-13.15.02.492000 before comm_lineread
Server: Microsoft-IIS/7.5
2014-05-30-13.15.02.492000 after comm_lineread
2014-05-30-13.15.02.492000 before comm_lineread
X-Powered-By: [12]ASP.NET
[13]2014-05-30-13.15.02.492000 after comm_lineread
[14]2014-05-30-13.15.02.492000 before comm_lineread
Date: Fri, 30 May 2014 11:15:02 GMT
2014-05-30-13.15.02.492000 after comm_lineread
2014-05-30-13.15.02.492000 before comm_lineread
Content-Length: 4
2014-05-30-13.15.02.492000 after comm_lineread
2014-05-30-13.15.02.492000 before comm_lineread
2014-05-30-13.15.02.492000 after comm_lineread
2014-05-30-13.15.02.492000 SetError() #13: HTTP/1.1 200 OK
2014-05-30-13.15.02.492000 recvresp(): end with 200
2014-05-30-13.15.02.493000 recvdoc parms: identity 4
2014-05-30-13.15.02.501000 header_load_cookies() entered
2014-05-30-13.15.02.504000 recvdoc(): entered
2014-05-30-13.15.02.504000 SetError() #0:
pong
2014-05-30-13.15.02.504000 http_persist_get(): entered
2014-05-30-13.15.02.504000 http_persist_req(GET) entered.
2014-05-30-13.15.02.504000 http_long_ParseURL(): entered
2014-05-30-13.15.02.505000 do_oper(GET): entered
2014-05-30-13.15.02.505000 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: [15]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
[mailto:[16]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
Sawatzki, Peter
Sent: Friday, May 30, 2014 12:01 PM
To: 'HTTPAPI and FTPAPI Projects'
Subject: 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 "[17]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
[18]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: [19]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: [20]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: [21]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: [22]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: [23]ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
[mailto:[24]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
>
[25]http://192.168.101.27/dwhsvc/dwhsvc.dll/datasnap/rest/TServermethod
s/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:
> [26]http://www.scottklement.com/mailman/listinfo/ftpapi
>
----------------------------------------------------------------------
> -
>
-----------------------------------------------------------------------
This is the FTPAPI mailing list. �To unsubscribe, please go to:
[27]http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
-----------------------------------------------------------------------
This is the FTPAPI mailing list. �To unsubscribe, please go to:
[28]http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
-----------------------------------------------------------------------
This is the FTPAPI mailing list. �To unsubscribe, please go to:
[29]http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------
References
1. mailto:Sawatzki@xxxxxxxxxxxx
2. tel:2014-05-30-13
3. tel:2014-05-30-13
4. http://WESTFALIA.NET/
5. tel:2014-05-30-13
6. tel:2014-05-30-13
7. tel:2014-05-30-13
8. tel:2014-05-30-13
9. tel:2014-05-30-13
10. tel:2014-05-30-13
11. tel:2014-05-30-13
12. http://ASP.NET/
13. tel:2014-05-30-13
14. tel:2014-05-30-13
15. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
16. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
17. http://192.168.101.5/ping.htm
18. tel:2014-05-30-11
19. http://WESTFALIA.NET/
20. http://ASP.NET/
21. http://ASP.NET/
22. http://ASP.NET/
23. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
24. mailto:ftpapi-bounces@xxxxxxxxxxxxxxxxxxxxxx
25. http://192.168.101.27/dwhsvc/dwhsvc.dll/datasnap/rest/TServermethods/p
26. http://www.scottklement.com/mailman/listinfo/ftpapi
27. http://www.scottklement.com/mailman/listinfo/ftpapi
28. http://www.scottklement.com/mailman/listinfo/ftpapi
29. 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
-----------------------------------------------------------------------