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
