Konubinix' opinionated web of thoughts

Zygote

Fleeting

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