Comments (10)
The way that the SubstrateVM works is that you can run the interpreter up until a certain point and then stop execution and freeze the heap at that point for compilation, producing an executable which resumes executing from that point.
This means we have the possibility to go further than for example Crystal, allowing people to load and initialise gems at compile time. We could take a Rails application and create an image from that so that all you do at startup is open the server sockets and start running.
This is a research area though.
from truffleruby.
The Substrate Virtual Machine (SVM) looks promising for TruffleRuby startup speed: https://github.com/graalvm/truffleruby/blob/master/doc/user/svm.md
from truffleruby.
@chrisseaton SEXY! Lisp and Smalltalk here we come!!!!! This is going to be PERFECT with Docker images. Imagine pre-warmed apps? WOW.
from truffleruby.
@chrisseaton That's fascinating. I have been wanting something like Smalltalk images for Ruby for a long time.
Could SubstrateVM become open source at some time in the future, or it is unknown at the moment?
from truffleruby.
I can't say anything about future plans like that, sorry.
from truffleruby.
Could SubstrateVM become open source at some time in the future, or it is unknown at the moment?
Looks like SubstrateVM indeed became open source under the GPLv2 license, on Dec 12, 2017 (see commit 9fa7c846
in the graalvm/graal
project).
from truffleruby.
@havenwood it's not crystal
, BUT that's super promising! Wow.
from truffleruby.
See also http://nirvdrum.com/2017/02/15/truffleruby-on-the-substrate-vm.html by @nirvdrum for more details about SVM in the context of TruffleRuby.
I recently found a rather big gain (~1s) on startup of TruffleRuby on JVM, we should re-measure startup.
Further steps could include investigating how to load RubyGems faster as that takes a significant amount of time, even more so on SVM where startup is otherwise around 100ms.
from truffleruby.
Ok, I understand. Sorry for asking.
from truffleruby.
Yes, sorry I should have come back here and said this. If you download GraalVM today you can run with --native
and get startup time similar to MRI. And it's now open source so you can build with jt build native
.
from truffleruby.
Related Issues (20)
- dead handle in nokogiri test suite HOT 1
- Regression when `IO.wait_*` or `rb_io_wait` is interrupted by `Thread#kill` HOT 1
- Truffleruby platform mismatch for Gemfile HOT 4
- The buffer encoding should remain unchanged after read_nonblock(N, buffer) HOT 1
- Parsing floats fails when using locales with a decimal separator different than `.`
- Unable to install truffleruby+graalvm-21.3.0 & 21.0.0 HOT 5
- `jt test fast` fails with JVM CE environment HOT 4
- Excessive splitting with `Method#to_proc` HOT 4
- Failure in SimpleCov test suite HOT 8
- Emit a performance warning when redefining methods in CoreMethodAssumptions HOT 1
- Serious performance regression for method pow(a, m) HOT 7
- Prepending a module to Integer disables many Inlined*Node
- method_source compatibility problems introduced with TruffleRuby 24.0.0 HOT 3
- Error installing pg 1.1.4 HOT 1
- concurrent-ruby Fixed Thread Pool memory leak HOT 2
- Array#pack does not support :buffer kwarg HOT 1
- Monkey patching not working HOT 2
- TruffleRuby set `host_cpu` to `aarch64` on `arm64-darwin` causing `REUSE_AS_BINARY_ON_TRUFFLERUBY` to not work as expected HOT 3
- rails 7, rails new - no such filre or directory HOT 1
- gem error: OpenSSL is not available in Oracle Linux 9 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from truffleruby.