首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么FreeBSD上的应用程序运行速度比Linux慢?

为什么FreeBSD上的应用程序运行速度比Linux慢?
EN

Unix & Linux用户
提问于 2019-07-12 07:21:32
回答 2查看 6.2K关注 0票数 5

更新

他们不知道!至少对我来说不是。

看看我的答案。

原始问题

根据去年的Phoronix基准的说法,FreeBSD上的应用程序运行速度比Debian慢(包括Stockfish国际象棋引擎、Node.js、FLAC编码和其他计算任务)。

Phoronix文章本身将一些性能差异归因于使用Clang而不是GCC编译器。其他一些的观点认为,使用ZFS会使FreeBSD慢一些,因为ZFS本身就比ext4慢。

但是,即使是在使用FreeBSD编译的GCC8上,纯粹的计算任务的执行速度也比在Linux上慢。

原因是什么?这是FreeBSD和Linux内核之间差异的内在原因,是驱动程序质量下降造成的,还是还有其他原因?

更具体地说,这里有一个非常简单的纯计算程序,它在FreeBSD上运行比在Linux上运行慢,根据Phoronix:男皇后1.2的说法。编撰如下:

代码语言:javascript
复制
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上)。我稍后会再测试的。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2019-07-13 04:35:16

如此多的落选促使我在我的6核台式电脑上安装了FreeBSD (TrueOS),让我自己来测试。(注意:我不建议尝试在其他操作系统的同时安装TrueOS,因为这个安装删除了我的一个硬盘驱动器,尽管我试图将它安装在一个USB驱动器上……不是一种用户友好的体验。)

因此,在Ubuntu和FreeBSD上从Phoronix测试套件运行了一些测试之后,我看不到“FreeBSD上的慢应用程序”效应。相反,一些应用程序在FreeBSD上运行速度明显快(10-25%):

代码语言:javascript
复制
    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%的时间。

潜在的陷阱:

  • gcc在Ubuntu上是7.2版,在FreeBSD - 7.4上
  • Ubuntu在shell中使用KDE、FreeBSD运行(不应该有太大的区别)
  • Phoronix使用80线程服务器,我使用6线程Intel i5计算机.

总之,在测试OS性能时,您应该:

  • 自己在安装程序上运行基准测试,而不是相信别人获得的结果。
  • 尝试使用相同的编译器。
  • 注意,像Perl和Python这样的脚本语言的性能并不能很好地反映OS的性能,因为不同的解释器安装的行为不同。
票数 9
EN

Unix & Linux用户

发布于 2019-07-12 10:05:30

我明白了,基准测试涉及到使用OpenMP。这可能是差异的根源。检查正在使用什么OpenMP运行时库。

另一件值得注意的事情是反汇编代码或中间表示。它可以让您快速发现正在执行的指令中的差异。

总之,这是没有一个快速和明确的答案,你必须做一些研究。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/529752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档