

我们可能会通过此页面上的产品获得收入,并参与联盟营销计划。了解更多›
麻省理工学院的工程师们一向以运用他们渊博的智力资源和充沛的精力来解决人类面临的一些最大挑战而闻名。坦率地说,今天早上,麻省理工学院计算机科学与人工智能实验室的研究人员确实不负众望。
他们没有开发出第一个真正的人工智能,也没有创造出永动机,更没有展示出可运行的聚变反应堆。但是,他们却找到了 解除卡死的文字处理程序 的方法,让您可以保存您的工作,那么相信那些更宏大的目标也指日可待了。
说真的,“无限循环”这个问题非常令人烦恼。它会浪费软件(以及使用它的人)的生产力。无限循环发生的情况是,一个程序卡在一遍又一遍地执行一个代码块(您可能称之为“死机”或“草!”)。当程序试图按顺序处理大量数据时,例如在文档中搜索单词时,就常常会发生这种情况。
问题在于,无论出于何种原因,程序都不知道何时停止重复该操作,或一遍又一遍地执行相同的代码段。因此被称为循环。这也就导致了您的沮丧,因为现在您的程序不让您做任何其他事情,包括保存您的进度。因此,麻省理工学院的研究人员开发了一种适用于冻结程序的“急救车”,可以将其从无限循环中唤醒,并引导它们执行下一个逻辑代码块。
这个名为 Jolt 的程序(非常恰当的名称),通过检查程序的内存使用情况来识别无限循环。假设您的程序似乎卡死了。当您运行 Jolt 时,它会在循环的每次重复执行后查看程序的内存。如果每次执行后都有变化,那么您的程序可能在做有用的事情。如果没有,它就只是陷入了无限循环。然后,Jolt 会查找程序卡住的代码之后的第一个指令,并强制程序继续执行(对于那些对编程感兴趣的人来说,在 MIT News 上有更详细的底层描述)。
这种强制执行的操作可能无法使程序完全恢复功能——例如,Jolt(及其二进制版本 Bolt)可能无法将程序推送到下一个正确的指令——但理想情况下,它至少可以将程序置于一个可以保存、退出和重新启动的状态。这总比重打您的论文要好。毕竟,您熬夜通宵才完成它。