making nio use kevent/kqueue
Nick Johnson
freebsd at spatula.net
Thu Aug 23 12:12:57 PDT 2007
Looking at it a bit more, it looks like the "right" thing to do is to
create a KeventArrayWrapper, possibly based on the EPollArrayWrapper.c so
that multiple ready FDs can be returned at one time.
That means creating a KeventArrayWrapper.java based on
j2se/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java as well as a
KeventSelectorImpl.java based on EPollSelectorImpl.java and
KeventSelectorProvider.java based on EPollSelectorProvider.java.
It also means modifying
src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java to select the
KeventSelectorProvider and possibly tweaking some makefiles to ensure that
everything gets built, including:
make/java/nio/Makefile
make/java/nio/mapfile* (do we end up using mapfile-linux or
mapfile-solaris?)
Nick
On Thu, 23 Aug 2007, Nick Johnson wrote:
> I think there could be a considerable performance gain if java.nio were
> tweaked to use kevent/kqueue(2) as opposed to poll(2).
>
> It looks like the files that would need to be touched for this are:
>
> j2se/src/solaris/native/sun/nio/ch/
> DevPollArrayWrapper.c (not sure about this one actually since
> FreeBSD doesn't use /dev/poll)
> PollArrayWrapper.c
> SocketChannelImpl.c
>
> Does that sound about right? I see select(2) and poll(2) used in other
> places as well, though outside of nio where they're likely to show the
> greatest benefit.
>
> Are there any caveats or "gotchas" I should be aware if should I decide to
> take some free time to try to come up with a kevent patch for nio?
>
> Also, is there a quicker way to build a JVM when just changing a file or
> two like this? It would be lousy to have to wait 2 hours to build after
> every minor change...
>
> Nick
>
>
--
"Courage isn't just a matter of not being frightened, you know. It's being
afraid and doing what you have to do anyway."
Doctor Who - Planet of the Daleks
This message has been brought to you by Nick Johnson 2.3b1 and the number 6.
http://healerNick.com/ http://morons.org/ http://spatula.net/
More information about the freebsd-java
mailing list