@
documentzhangx66 #20
-----------------
"我觉得你可能只是听别人说过 patch 讨论与建设,却没有实际去操作不同的 OS 与性能测试,手里可能也没几款存储介质"
——不好意思,我过去参与过从机械到固态好几个不同类型的介质项目,包括现阶段未面世的下一代存储介质,我亲手写的或者设计的代码已经跑在了多种不同的计算节点上
-----------------
"Benchmark 是复杂,我也说了,坑多。但它只是复杂,并不难。如果一个人是科班的,经受过正规系统的学习,他们也会觉得,这玩意坑多。学术课题?免了吧,重本的本科论文水平都没达到,最多是个重点高中的校报水准。"
——ASPLOS, OSDI 一直都有 Benchmark workshop ,对对对,都是校报水平。
另外可以和你交流一下,近一年来我们团队都在做内存相关的体系结构问题研究,约 70%的时间都在做各种 Benchmark 设计和实施上。Linux 的 IO 栈的 Benchmark 相对而言是比较容易设计而且实施的,但是类似体系结构中深层次的问题,往往需要设计非常精妙的 Benchmark 手段和工具,才能抓取到那些 ns 级别的性能差异。
很多刚毕业的优秀的同学,刚加入团队的时候也抱着过去开箱即用的思维来进行各种标定,然后搞了一段时间发现测试数据都不能自洽。所以我会说 *很多用户在 Linux 做 Benchmark 测试的时候,不是太理解背后的计算机基本原理,导致了还抱着对工具开箱即用的思路来做测试,导致测试结果不可信。*
最后,你提到的 Linux 和 Windows 在论坛上交流的数据差异问题,这只是一个爱好者层面的表现,实际上我们不管是在社区、业界还是学术界做性能讨论,我们会严格约定 CPU Mem IO 、BIOS 、Kernel 版本和 Kernel 关键配置,然后基于固定的这些配置,再来讨论性能。其实就算是 windows 系统,以网络 IO 为例,有的 BIOS 支持网卡的 TCP 硬卸载,有的网卡不支持,就算是同一台机器,不做好严格标定,一样可以跑出两种结论出来。