On 09/01/2015 17:25, Rémy Maucherat wrote: > Hi, > > Following the refactoring, performance is significantly down for NIO2, but > improved for NIO1. > > With my ab test on tomcat.gif, logging disabled, this does (Tomcat 8 vs > trunk): > NIO1: 50k -> 60k
up 20% wow > NIO2: 65k -> 57k down 15% :( not so good > IMO the difference is significant, so this is a real regression. Agreed. > I didn't really see anything obvious that could explain that. Likewise. > Maybe a combination of the deque or the buffering behavior change? I agree that these are the most likely candidates. > Unless the cause is found and > this gets fixed, there would be few reasons to keep the NIO2 connector. One reason (once all the refactoring is complete) might be WebSocket since the use of CompletionHandlers in WebSocket and NIO2 may allow for some efficiencies that just aren't possible with NIO or APR. I'll add looking at this to my TODO list. Unfortunately, past experience suggests tuning this may involve more guess work than I'd like since at these sorts of rates profilers tend to add so much overhead you can't find the bottleneck you are looking for. The other thing to keep in mind is that these performance figures could easily shift a lot further as the code clean-up continues. We should defer any decision about removing an implementation until after the refactoring is complete. Looking further ahead, the HTTP/2 work may impact performance as well. On balance I think we should keep all three implementations since there are always likely to be loads that are better suited to one implementation than the others. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org