|
|
|
|
|
by deckarep
1622 days ago
|
|
Question on VM snapshotting: what’s the purpose/point in even having such an ability? What does it allow you to do? I only know of snapshotting perhaps being necessary to support coroutine based context switching. Thanks and very cool project! |
|
Aside from coroutines and continuations, snapshots are neat for distributed computing: spin up a vm, take a snapshot, and replicate it over the network. You could also send snapshots of different tasks to other computers to execute. In the context of edge computing, you could snapshot the program once it's 'warm' to cut back on VM startup time.
Snapshots allow you to peek into your program. Imagine a debugger that takes snapshots on breakpoints, lets you to inspect the stack and heap, and replay the program forward from a given point in a deterministic manner. You could also send a snapshot to a friend so they can run an application from a given point on their machine. If you do snapshots + live reloading there are tons of other things you can do (e.g. live patching and replaying of functions while debugging).