Tony Arcieri created JRUBY-6408:
-----------------------------------
Summary: Kilim-powered Fibers
Key: JRUBY-6408
URL: https://jira.codehaus.org/browse/JRUBY-6408
Project: JRuby
Issue Type: Wish
Reporter: Tony Arcieri
Assignee: Thomas E Enebo
Kilim is a somewhat faithful adaption of Erlang's approach to lightweight
concurrency to the JVM:
http://www.malhar.net/sriram/kilim/
Right now JRuby uses a thread pool for fibers, which is surprisingly fast, but
about half the speed of the alternatives on the JVM according to my benchmarks.
JRuby presently has a mostly working implementation of Fibers on Da Vinci/MLVM
coroutines which my benchmarks show being twice the speed of the thread
pool-based solution, and this is also quite interesting. However, Kilim works
today across many JVMs and is quite fast (faster than Erlang! trololol)
The downside of Kilim is the requirement to weave all bytecode that winds up in
a call stack which Kilim needs to save off to be resume. However, nowadays if a
ClassLoader is "Kilim-aware", the weaving process can occur at runtime, however
weaving still makes Kilim something of an onerous dependency. Perhaps, like the
MLVM coroutine-powered Fibers, it could be an option that's off by default but
could be flipped on at start time by setting a particular JRuby property.
I think Kilim is probably the most practical way to achieve fast Fibers on
JRuby in the short term. I don't know what the future holds for MLVM
coroutines, but Kilim works today and I would love to be able to leverage it
from JRuby.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email