Answers:
这些数字(也在Norvig的10年自学编程中列出)是近似的,仅作为(数量级)有用。
实际上,即使是价格便宜的300欧元笔记本电脑和高端10k欧元工作站,当今的硬件(至少对于台式机或笔记本电脑)也相差不大。速度最多相差2或4倍。这样的工作站可以具有更大的磁盘,更多的核心,高速缓存和RAM。但是,这对原始单线程性能没有太大影响。
查看http://openbenchmarking.org/上的某些数字或某些CPU比较器。
所谓的摩尔定律正在消失。我3岁以上的台式机(i3770K)可以(今天,2016年3月)替换为一些i6700,速度仅快20%。
这些数字并不准确。重要的是层之间的数量级之间的比率。
但是,当出现破坏性技术(例如云计算,10GB / 100GB以太网,新的网络内核模块,SSD存储网络,虚拟化和容器化)时,由于出现了新的层,消失或被重新排列,这些数字可能会失效。
在非常高的级别进行编程时-所有的计算,联网,解析等操作都是使用非您自己编写的库执行的,因此了解低级操作的性能指标可能无济于事,因为您有机会改进每种性能图书馆的表现相当有限或根本不可能。
相反,请仔细阅读每个库的性能相关文档。如果图书馆没有这些,请问他们-成为一个问题。或学习如何以正确的方式对软件进行基准测试。
当您被一家设计和制造软件组件的公司雇用时,对延迟数有基本的了解很重要。将其与设计和制造汽车以及其中包含的每个组件的公司进行比较-众所周知的“重塑车轮”(橡胶,轮胎压力,胎面等)
大多数软件公司都不在组件级别上工作-可以通过将组件放在一起来构建整个功能软件系统。这些软件公司不需要专注于如何根据延迟来设计组件。相反,他们需要评估他们选择的组件的质量。
总而言之,(1)您很有可能不需要知道等待时间;(2)除非您想被制造软件组件(库)的公司雇用,无论是出售还是内部使用(例如世界上一些最大的软件公司),(3)如果您需要这些数字,以科学正确的方式自己做基准测试是您的工作,否则您不应该从事软件组件的开发。
没有人声称这些数字适用于任何硬件。
但是,它们比盲目猜测准确得多。不幸的是,这正是他们的代码所基于的。
它们并不十分准确,也不是真正想要的。
但是,它们(特别是在较小的数目上)比仅仅几个数量级好一点。另一个要点是,它可以帮助弄清哪些东西彼此靠近,人们有时会误解为它们之间的距离比实际距离远得多。举一个明显的例子,很多人认为分支错误预测经常是一件大事。它可以是一个大问题,如果它重复了很多,但它并不一定值得牺牲一个巨大的数额在任何地方和其他地方只是获得更好的分支预测(例如,如果你从主内存中,甚至L2缓存中读取,以提高分支预测,这可能是净亏损)。
同时,是的,数量级可能是最有用的部分。例如,从主存储器访问数据要比从寄存器访问数据花费大约100倍的时间。是的,在一台计算机上,它可能要长97倍左右,而在另一台计算机上,它可能要长127倍左右。几乎可以肯定,它将接近100,而不是10或1000。
就个人而言,我倾向于认为其中大多数类似于太平洋中的岛屿。硬盘速度(例如)可能是夏威夷群岛。SSD速度是菲律宾的孤岛。这以足够小的比例显示地图,使每个地图看起来都像一个点。如果我们放大,那显然是不对的-但两条链之间的距离比任一链中岛之间的距离大很多倍。