每个程序员都应该知道的延迟数字

总体反响

  • 许多人觉得这个可视化概念上很有趣,也很美观。
  • 很大一部分评论说这个页面很难用,甚至无法使用,尤其是在手机和平板上。
  • 也有不少人更喜欢更早、更简单的同一组延迟数据呈现方式(纯文本、表格,或者早先的交互式网站)。

UI / UX 与交互

  • 主要抱怨:
    • 竖排/横向文字读起来不舒服,而且常常会被浮动 UI 或浏览器界面遮挡。
    • 柱条在点按时会不可预测地变短或变长;重复点击不是幂等的,感觉“失控”。
    • 在很多设备上(iOS Safari、Android、Firefox mobile、iPad、4K 显示器),标签或柱条底部会被隐藏或裁切。
    • 用户常常无法同时看到标签和数值,削弱了比较的能力。
    • 使用说明很容易被忽略;“点击柱条上方/下方以重新缩放”的心智模型并不清晰。
  • 有些人喜欢在理解之后那种有点俏皮的“重新缩放柱条”交互,但也表示它更重形式而非功能。
  • 建议的改进包括:
    • 横向柱状图、对数刻度静态图,或简单表格。
    • 将文字放在柱条外部,或在点按时展开覆盖层。
    • 自动调整大小而不是手动“点按以重新缩放”,更清晰的可操作提示(箭头、图标),以及更好的对比度/留白。
    • 能够折叠/移动信息/致谢框。

数据与建模方面的担忧

  • 有几项具体数字被质疑:
    • 以约 44 ns 表示通过“1 Gbps”发送 1K 的说法被广泛指出不可能;对原始来源的分析表明,它实际上是在通过指数式带宽增长来建模一个更快的“commodity NIC”,而不是字面意义上的 1 Gbps 链路。
    • 数据中心往返时间在数十年中保持不变,被认为值得怀疑。
    • 有人认为一些磁盘和 SSD 的吞吐量/延迟数字与典型硬件相比并不准确。
  • 年份滑块(+/- 年)一开始让人困惑;后来解释为这些数值是随时间外推的,而不仅仅是历史数据。

“每个程序员都应该知道的数字”的实用性

  • 有些人认为这些延迟对于理解权衡关系至关重要(RAM 与磁盘、网络,以及人可感知的延迟)。
  • 也有人说,大多数程序员并不做性能关键型工作,且很少需要这类数字。
  • 对于用时间还是 CPU 周期来表达成本,也存在争论:
    • 嵌入式/电信开发者指出,在他们的领域里,周期是标准表达方式。
    • 其他人则认为,在现代多核系统中存在许多时钟域,用基于时间的、跨域比较更有意义。