许多软件崩溃后重启的速度,要比正常退出后重启更快

2003年的一项研究发现,许多软件崩溃后重启的速度,要比正常退出后重启更快。 Redhat 8:退出后重启104秒,崩溃后重启75秒。 JBoss 3.0:退出后重启47秒,崩溃后重启39秒。 Windows:退出后重启61秒,崩溃后重启48秒。 而且,研究人员发现崩溃也没有导致丢失任何重要数据,毕竟软件现在都做得很完善,能够安全地处理崩溃,防止数据丢失。 有些人就开玩笑,既然如此,开发时就不要写正常退出的代码了,要退出了就抛出一个错误,让软件直接崩溃,这样速度更快。 举例来说,如果要退出 Windows,不必按"退出"按钮,直接关掉电源会更快。 如果处理错误的代码非常可靠,软件的所有部分都能够在崩溃中保证安全并快速恢复,那么确实不需要写显式关闭的代码,直接用abort()代替。 这样的软件就称为"只会崩溃的软件"(crash-only software),谷歌的分布式文件系统 GoogleFS 就被认为是这种软件,它不会正常退出,只会在发生错误时崩溃。