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