Zygote
Fleeting- External reference: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md
Chromium Docs - docs/linux/zygote.md
zygote process is one that listens for spawn requests from a main process and forks itself in response.
— https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md
forking a process after some expensive setup has been performed can save time and share extra memory pages.
— https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md
Amortize the runtime and memory cost of the dynamic loader’s relocations, which is respectively ~6 MB and 60 ms/GHz per process
— https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md
saves up to ~8 MB per process.
— https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md
only reasonable way to keep a reference to a binary and a set of shared libraries that can be exec‘ed
— https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md
, if the chrome binary, or any of its shared libraries are updated while Chrome is running, we‘ll end up exec’ing the wrong version
— https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md
exec the prototypical renderer at the beginning of the browser execution. When we need more renderers, we signal this prototypical process (the zygote) to fork itself.
— https://chromium.googlesource.com/chromium/src/+/HEAD/docs/linux/zygote.md