Remix.run Logo
Alifatisk 2 days ago

Is there a way to snapshot the VM's warmed up state? So the next time when I run the application, it can jump into the warmed up state and continue from there?

pjmlp 2 days ago | parent | next [-]

Technically yes, this is common in JVM implementations, Android, .NET, and oldies like Smalltalk and Common Lisp.

So it could be possible to implement something similar for Ruby.

igouy a day ago | parent | prev | next [-]

https://criu.org/

Alifatisk a day ago | parent [-]

Cool, I’ll check this out and ser how applicable it is to Ruby, otherwise I’ll try to use CRaC with TruffleRuby

matheusmoreira 2 days ago | parent | prev [-]

This can be done. The virtual machine could dump its complete memory image into an ELF file. That way, resuming consists of simply executing the file. Emacs has done this for a while via the unexec function:

https://lwn.net/Articles/673724/

The big problem is (of course) global state in C libraries, especially libc.