Mark, I apologize for not bringing this up before, but is that BIO vs NIO or BIO with executor vs NIO with executor? Thanks again, for looking into this.
-----Original Message----- From: Mark Thomas [mailto:ma...@apache.org] Sent: Friday, June 09, 2017 12:30 AM To: Tomcat Users List <users@tomcat.apache.org> Subject: Re: Tomcat 8/NIO performance discrepancies On 08/06/17 14:42, Mark Thomas wrote: > I'll look at BIO vs NIO next. At the sort of request rates and response sizes we are talking about, we are a long way from real-world applications and the differences you see between BIO and NIO are largely down to the differences between doing a blocking read for the next request (BIO) and polling (NIO). What you will notice is that as the number of concurrent clients rises, BIO performance will drop considerably as soon as the disableKeepAlivePercentage is exceeded and will continue to fall as client concurrency rises. NIO, on the other hand, will retain broadly the same performance even when client concurrency >> threads. I have spent some time looking at this in detail with a profiler but the timing differences we are talking about are so small that often the profiler overhead ends up dominating. I think the general lesson here is that benchmarks like this can be interesting but the further removed they are from real-world examples, the less useful they are likely to be. As you move towards more real-world examples, what you tend to find is that I/O and/or application logic become far more dominant. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org