On Apr 23, 2014, at 9:44 PM, Charles Oliver Nutter <head...@headius.com> wrote:
> What would it take to make Hotspot forkable? Obviously we'd need to > pause all VM threads and restarting them on the other side (or perhaps > a prefork mode that doesn't spin up threads?) but I know there's > challenges with signal handlers etc. > > I ask for a few reasons... > > * Dalvik has shown what you can do with a "larval" preforking setup. > This is a big reason why Android apps can run in such a small amount > of memory and start up so quickly. > * Startup time! If we could fork an already-hot JVM, we could hit the > ground running with *every* command, *and* still have truly separate > processes. > * There's a lot of development and scaling patterns that depend on > forking, and we get constant questions about forking on JRuby. > * Rubinius -- a Ruby VM with partially-concurrent GC, a > signal-handling thread, JIT threads, and real parallel Ruby threads -- > supports forking. They bring the threads to a safe point, fork, and > restart them on the other side. Color me jealous. > > So...given that OpenJDK is rapidly expanding into smaller-profile > devices and new languages and development patterns, perhaps it's time > to make it fit into the UNIX philosophy. Where do we start? Good question. I think you should bring this up on the hotspot-dev mailing list. People from the runtime team might have some input to this (at least I hope; because I don’t, really). > > - Charlie > _______________________________________________ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev