https://bz.apache.org/bugzilla/show_bug.cgi?id=63916

--- Comment #8 from Mark Thomas <ma...@apache.org> ---
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.

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.

-- 
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

Reply via email to