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


Reply via email to