https://bz.apache.org/bugzilla/show_bug.cgi?id=63916
--- Comment #9 from Michael Osipov <micha...@apache.org> --- (In reply to Mark Thomas from comment #8) > I see some timing differences on Linux, but not as extreme. > > For one test testNonBlockingWriteWithKeepAlive > > NIO: 55s > APR: 8s > > The NIO slowness is caused by the non-blocking write. The test does a large > write. There is then, essentially a loop where: > - non-blocking write (8k, the buffer size) > - add socket to poller > - wait for poller to signal write is possible > > There is a delay of ~40ms in each loop iteration waiting for the poller. > 10MB of data in 8k chunks with a 40ms delay per chunk = 51s. > > Set socket.appWriteBufSize to 64k and the time for that test with NIO drops > to 8s. > > I don't see anything that would let us configure the Poller to react any > faster. > > I want to use a Profiler to investigate that delay to see if it really does > happen in the Poller or if it is in the Tomcat code using the Poller. Thanks for looking into, but even on Linux, is that a sound difference? Why is APR so much faster here? > I also want to run the test on FreeBSD to see if the delays you see have a > similar root cause. I'm guessing from the version number you aren't using > Java from ports but are using the AdoptOpenJDK for Linux builds. I am using OpenJDK straight from Ports which is a fork of AdoptOpenJDK: The canonical fork for all BSDs: https://github.com/battleblow/ -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org