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