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

Reply via email to