可以使用进程的核心转储来实现检查点/重启吗?核心文件包含进程的完整内存转储,因此理论上应该可以
将进程恢复到转储核心时的相同状态。
是的,这是可能的。 GNU Emacs 这样做是为了优化其启动时间。它加载一堆 Lisp 文件来生成图像,然后转储可以重新启动的核心。
几年前,我为 GNU Make 3.80 创建了一个补丁来完成完全相同的事情(使用从 GNU Emacs 借用的代码)。
有了这个补丁,你在 make 中就有了一个新的选项:make --dump
。该实用程序现在读取您的Makefile
,然后它不执行规则,而是生成一个核心转储,可以重新启动该核心转储来执行实际构建(评估已解析的规则树)。
这是一个节省,因为该项目是如此之大,以至于在源代码树中加载所有 make 规则需要三十秒!通过这种优化,增量构建几乎立即启动,没有半分钟的启动损失。
为此不需要内核支持。所需要的是有关核心文件结构的知识。
除了这种方法之外,很多年前还有一个针对 Linux 的进程检查点项目(想知道发生了什么)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)