要是你对FreeBSD运行在AMD Ryzen线程撕裂者3960X/3970X + TRX40主板上感兴趣的话,我们这篇测试体验绝对会让你感到无比舒爽。事实上,对于开箱即用体验而言,或许就已经比目前Linux的启动时MCE(机器检查异常)解决方案好得多。这篇文章就是FreeBSD 12.1在线程撕裂者3970X上的跑分结果,与之对比的是Linux和Windows,都在相同的高性能平台上测试。
这次FreeBSD 12.1运行在32核、64线程的Ryzen线程撕裂者3970X上,使用华硕ROG ZENITH II EXTREME主板,启动、运行都相当流畅,所有核心都正常运作,PCIe 4.0 NVMe SSD硬盘、主板网卡等主板功能一切正常。这套系统插满4条16GB DDR4-3600内存,还有1TB Corsair Force MP600 NVMe SSD和Radeon RX 580显卡。考虑到在这套系统上,Linux甚至出现了无法启动问题,而FreeBSD却能正常运作,真是令人欣喜。
虽然FreeBSD 12.1在TRX40主板(ROG Zenith II Extreme)搭配AMD Ryzen线程撕裂者3970X并没有什么问题,但可惜DragonFlyBSD就没那么走运。无论是DragonFlyBSD 5.6.2稳定版还是DragonFlyBSD每日开发快照版(2019年11月最后一周的版本)都无法启动。因此,这次测试略过DragonFlyBSD,只测试FreeBSD。
这次测试既使用默认自带的LLVM Clang 8.0.1编译器,也使用ports里的GCC 9.2以作比较。测试平台参数如下
所有Linux / BSD / Windows测试都是用Phoronix Test Suite。
在线程撕裂者3970X上,FreeBSD的Golang编译性能跟其它Linux发行版基本持平,远好于Windows 10的性能。
虽然Golang编译性能不错,但是垃圾回收速度仍然比其它平台慢得多。
而对于最常用的部分,由于使用了Open JDK 11,FreeBSD 12.1在AMD线程撕裂者的测试表现跟其它Linux发行版相比,没太大差异。
在多线程OpenMP的GraphicsMagick测试里,在FreeBSD 12.1运行图形操控程序的性能还不错。FreeBSD 12.1已经默认附带支持OpenMP的Clang版本,因此默认编译而来的GraphicsMagick运行得相当好,而GCC 9.2就跟Linux平台的表现相似。
FreeBSD 12.1的x264编码测试同样使用GCC和Clang两个版本,都比Linux版本快得多,但比Windows 10慢。
在线程撕裂者3970X上,7-Zip同样是FreeBSD 12.1的其中一个落后项目。比Windows和Linux都落后太多。
在Stockfish测试里,FreeBSD的性能表现排在前列,介于OpenSUSE和CentOS之间。
FreeBSD的xz压缩性能表现良好,远优于7-Zip。
FLAC音频压缩同样使用了GCC和Clang两个编译版本来测试,Clang编译出来的可执行文件优化不太理想。
类似的,GCC版M-Queens在FreeBSD上表现更好。
FreeBSD继续在这套AMD Ryzen线程撕裂者3970X系统上表现出强劲的性能。
FreeBSD的Python的跑分落后于Linux和Windows,在其它硬件系统上我们发现也是这样的。
在FreeBSD上使用Git操作大仓库就跟Linux一样快。
跑分总结,可以看到所有测试都在Windows、Linux和FreeBSD上成功运行,FreeBSD 12.1令人刮目相看,尤其是考虑到AMD并未对FreeBSD作出什么优化的情况下。FreeBSD 12.1的性能就跟受测的Linux发行版差不多。如果把编译器从默认的Clang 8.0.1切换成GCC 9.2,在多数情况下确实会对提升性能有帮助,不过由于Clang 8.0.1有OpenMP的支持,两者的性能差距已经缩小了。总地来说,在线程撕裂者 3970X运行FreeBSD 12.1竟然没有硬件兼容性问题还真的令人感到惊喜,在这个AMD 32核/64线程的处理器上表现得真是太好了。