他们不知道!至少对我来说不是。
看看我的答案。
根据去年的Phoronix基准的说法,FreeBSD上的应用程序运行速度比Debian慢(包括Stockfish国际象棋引擎、Node.js、FLAC编码和其他计算任务)。
Phoronix文章本身将一些性能差异归因于使用Clang而不是GCC编译器。其他一些的观点认为,使用ZFS会使FreeBSD慢一些,因为ZFS本身就比ext4慢。
但是,即使是在使用FreeBSD编译的GCC8上,纯粹的计算任务的执行速度也比在Linux上慢。
原因是什么?这是FreeBSD和Linux内核之间差异的内在原因,是驱动程序质量下降造成的,还是还有其他原因?
更具体地说,这里有一个非常简单的纯计算程序,它在FreeBSD上运行比在Linux上运行慢,根据Phoronix:男皇后1.2的说法。编撰如下:
gcc -o m-queens.bin main.c -O2 -march=native -mtune=native -std=c99 -fopenmp由于这是一个在两个20个核心CPU上运行的多线程任务,我怀疑性能差异归结为操作系统处理多个线程的能力。
为了更清楚地说明,我知道FreeBSD有良好的联网能力,它是Netflix使用。这个问题是关于计算任务的,就像上面提到的那样。
P.S.在我的6核桌面上安装了FreeBSD (TrueOS)并试图自己运行皇后基准之后,我没有注意到多线程性能上有什么明显的差异。虽然Phoronix声称它在FreeBSD上的运行速度慢了39%,但在我的测试中,它只慢了3.7%,这可以归因于编译器版本的细微差异(gcc 7.4在TrueOS上,gcc 7.2在Ubuntu上)。我稍后会再测试的。
发布于 2019-07-13 04:35:16
如此多的落选促使我在我的6核台式电脑上安装了FreeBSD (TrueOS),让我自己来测试。(注意:我不建议尝试在其他操作系统的同时安装TrueOS,因为这个安装删除了我的一个硬盘驱动器,尽管我试图将它安装在一个USB驱动器上……不是一种用户友好的体验。)
因此,在Ubuntu和FreeBSD上从Phoronix测试套件运行了一些测试之后,我看不到“FreeBSD上的慢应用程序”效应。相反,一些应用程序在FreeBSD上运行速度明显快(10-25%):
Test FreeBSD 13 Ubuntu 17
Fhourstones, kpos/s 16753 13336
m-queens, multithreaded, user time, s 18.08 17.38
7zip 1 GB text file, user time, s 994 1096如您所见,在FreeBSD上执行速度较慢的唯一任务是多线程N皇后问题,比Ubuntu多花费3.7%的时间。
潜在的陷阱:
总之,在测试OS性能时,您应该:
发布于 2019-07-12 10:05:30
我明白了,基准测试涉及到使用OpenMP。这可能是差异的根源。检查正在使用什么OpenMP运行时库。
另一件值得注意的事情是反汇编代码或中间表示。它可以让您快速发现正在执行的指令中的差异。
总之,这是没有一个快速和明确的答案,你必须做一些研究。
https://unix.stackexchange.com/questions/529752
复制相似问题