Whether that'll be worth the cost remains to be seen - 250ms is still far too long for most uses, but if it can come down enough, it's attractive.
Also worth noting I wrote a bunch of benchmarking tools to help optimize this case[2].
[1] http://oirase.annexia.org/tmp/paper.pdf
[2] https://github.com/libguestfs/libguestfs/tree/master/utils
I really hope this can be pushed further down to the point where it gets viable to for more use cases. Of course, we can always use something lighter than Linux, but being able to start with Linux and pare down is potentially so much easier for many types of applications.
Isn't this just cgi-bin, right down to the long startup time and lack of persistence?
But you can reach comparable levels of isolation with processes: just use Linux namespaces.
"Prefork" these VMs by spraying that image over physical memory in advance, jump to them on a request. memcopy a new VM over them on exit.
VM spawn rate should be the memcopy rate, if the MMU is powerful enough, should only be the amount of memory mutated during a request.
However, is there a point in shutting down the VM right away, other than being a cool demo? It seems to me that you could quite easily keep it around if there are more requests queued, and quickly spawn more workers if the queue gets too long. So a regular worker pool, just that the number of workers can be adjusted relatively quickly.