I know. I changed that now. And am getting very good speeds for them
all (using your recommendation of running non-proxied/direct
connections).

Kind of bad, because I'm not sure where to look now. Got a few ideas
for experiments, but that'll have to wait till later.

On Fri, Jun 13, 2008 at 10:03 AM, Oleg Kalnichevski <[EMAIL PROTECTED]> wrote:
> On Thu, 2008-06-12 at 22:07 +0200, Quintin Beukes wrote:
>
>> I am obviously using HttpCore wrong for it to be so slow (I mean,
>> HttpClient is built on core, so it's impossible to be faster). It's
>> just that the documentation for these are sparse, and I'm having a
>> very hard time finding my way around.
>>
>
> Quintin,
>
> I just took a cursory look at the benchmark code. It is absolutely clear
> why HttpCore does not perform. You are basically opening a new
> connection for _each_ and _every_ request. Essentially you are testing
> the performance of the TCP/IP stack rather that of HttpCore.
>
> Hope this helps
>
> Oleg
>
>> And beyond this, Tomcat itself gives me fantastic speeds reading
>> static data. Where are the bottlenecks?
>>
>> The HttpCore setup I used was the "Basic GET Requests" example
>> available on the site. I modified it a bit to allow URL input and
>> target server specified through parameters passed to the servlet.
>> Beyond that I didn't change anything. My assumption is that
>> connections aren't being reused. In fact, I know this is the case, so
>> it logically and obviously removes the validity of the above
>> benchmarks for HttpCore. I'm not going to remove them though.
>>
>> I would really like to get throughputs similar to direct Apache
>> connections (at least 33+ mbyte/s, which is round about the general
>> limit of hard drive transfer rates). Full ethernet throughput is
>> preferable and I'm sure possible. Downloading large files I get speeds
>> of up to 54mbyte/s with Apache. I'm sure this is limited only to the
>> hard drive I tested with, as it's a gigabit connection, and this is
>> just less than half it's full potential. I haven't done tests using
>> memory transfer. Will try it when I can diagnose the bottlenecks I
>> currently have, and then use them as measurements to gain insights
>> into the speed of the program itself by taking as much of the other
>> bottlenecks in the system away as possible (in this case the
>> limitation of data transfer rates from the hard drives).
>>
>> The three benchmark servlets I used are here:
>> HttpClient: http://quintin.dev.junkmail.co.za/httpclient/Bench.java
>> HttpCore: http://quintin.dev.junkmail.co.za/httpclient/BenchCore.java
>> HttpURLConn: http://quintin.dev.junkmail.co.za/httpclient/BenchURL.java
>>
>> And a utility class I use in the above:
>> http://quintin.dev.junkmail.co.za/httpclient/StreamBinder.java
>>
>> Any insights would be greatly appreciated.
>>
>> regards,
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Quintin Beukes

Reply via email to