我又一次在进行设计审查时,遇到了这样一种说法,即特定场景的概率“小于宇宙射线的风险”影响程序,我突然想到我根本不知道那是什么概率是。
“由于 2 -128是 340282366920938463463374607431768211456 中的 1 个,我认为我们有理由在这里冒险,即使这些计算偏离了几十亿倍......我们面临的宇宙射线风险更大把我们搞砸了,我相信。”
这个程序员是对的吗?宇宙射线撞击计算机并影响程序执行的概率是多少?
来自维基百科:
IBM 在 1990 年代的研究表明,计算机通常每月每 256 兆字节的 RAM 会遇到一个由宇宙射线引起的错误。[15]
这意味着每月每字节3.7 × 10 -9的概率,或每秒每字节 1.4 × 10 -15的概率。如果您的程序运行 1 分钟并占用 20 MB RAM,那么失败概率为
60 脳 20 脳 1024虏 1 - (1 - 1.4e-15) = 1.8e-6 a.k.a. "5 nines"
错误检查有助于减少故障的后果。此外,正如 Joe 所说,由于芯片尺寸更紧凑,故障率可能与 20 年前不同。