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]
