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

Reply via email to