On Mon, 2014-05-12 at 13:21 +0100, Daniel Feist wrote: > >> 2) Can I expect 4.2 to scale better? > > > > I do not think so. In my tests HC 4.3 performs better than 4.2. There > > have also been reports > > Even with high concurrency of say 200 and high TPS, for example in a > http proxy scenario? >
Yes, also with over 200 concurrent connections. However, for HTTP proxy scenarios one may be advised to consider using a non-blocking model. > >> 3) Is there a way of configuring 4.3.3 to not use proxys? > > > > No, there is not. The cost of dynamic proxies in modern JREs is believed > > to be low. > > The problem I see isn't the use of proxies, it is in the creation of > these proxy instances which is synchnorized on a HashMap 'cache' in > two places in java.lang.reflect.Proxy.getProxyClass0(ClassLoader, > Class<?>...). This is visible in the profiler screenshot I shared > too. > > This probably isn't an issue with low concurrency, or high concurrency > and low TPS, but in my testing/profiling it comes up as an issue. > I use this micro-benchmark to benchmark HttpClient performance between versions as well compared to other implementations. http://wiki.apache.org/HttpComponents/HttpClient3vsHttpClient4vsHttpCore I am open to the idea of replacing dynamic proxies with hand crafted classes, but I would like to see more evidence that java.lang.reflect.Proxy is indeed a bottleneck. Oleg --------------------------------------------------------------------- To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org For additional commands, e-mail: httpclient-users-h...@hc.apache.org