LinuxよりFreeBSDでアプリケーションが遅く実行されるのはなぜですか?

LinuxよりFreeBSDでアプリケーションが遅く実行されるのはなぜですか?

修正する

彼らはしません!少なくとも私にとってはそうではありません。

私の答えを参照してください。

元の質問

~によると昨年のPhoronixベンチマーク、ほとんどのアプリケーションはDebianよりFreeBSDで遅く実行されます(Stockfishチェスエンジン、Node.js、FLACエンコーディング、その他のコンピューティングタスクを含む)。

Phoronixの記事自体は、GCCコンパイラの代わりにClangを使用することによっていくつかのパフォーマンスの違いが生じると説明しています。その他ZFSは本質的にext4よりも遅いので、ZFSを使用するとFreeBSDが遅くなるという意見があります。

しかし、GCC8でコンパイルされたFreeBSDの純粋なコンピューティング作業でさえ、Linuxよりも遅くなります。

理由は何ですか?これがFreeBSDとLinuxカーネルの本質的な違いですか、ドライバの品質が悪いから、それとも別のものがありますか?

ポリスチレンより具体的に言えば、これはPhoronixによると、LinuxよりFreeBSDで遅く実行される非常に単純な純粋な計算プログラムです。m-クイーン1.2。次のようにコンパイルされました。

gcc -o m-queens.bin main.c -O2 -march=native -mtune=native -std=c99 -fopenmp

これは2つの20コアCPUで実行されるマルチスレッドジョブであるため、パフォーマンスの違いはマルチスレッドを処理するOSの能力に依存すると考えられます。

ポリフェニレンスルフィドより明確に言えば、私はFreeBSD良いネットワーク技術そしてそれはネットフリックスは。この質問は、特に上記の計算作業を扱います。

購買力評価サービス6コアデスクトップにFreeBSD(TrueOS)とUbuntuをインストールし、Queensベンチマークを直接実行した後、マルチスレッドパフォーマンスで大きな違いが見つかりませんでした。 PhoronixはFreeBSDで39%遅く走っていると主張していますが、私のテストでは3.7%遅くなりました。これは、コンパイラバージョン(TrueOSの場合はgcc 7.4、Ubuntuの場合はgcc 7.2)の微妙な違いによるものです。後でもっとテストしてみましょう。

ベストアンサー1

あまりにも多くの反対投票で、私は自分でテストするために6コアデスクトップコンピュータにFreeBSD(TrueOS)をインストールしました。 (注:TrueOSを他のオペレーティングシステムと一緒にインストールすることはお勧めできません。このインストールにより、私のハードドライブの1つが消去され、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-queensの問題であり、Ubuntuより3.7%長くかかりました。

潜在的な落とし穴:

  • Ubuntuのgccバージョンは7.2で、FreeBSDでは7.4です。
  • UbuntuはシェルでKDEとFreeBSDで実行されます(大きな違いはありません)
  • Phoronixは80スレッドサーバーを使用し、私は6スレッドIntel i5コンピュータを使用しています。

要約すると、オペレーティングシステムのパフォーマンスをテストするときは、次のことを行う必要があります。

  • 他の人が得た結果を信頼するのではなく、設定に対して直接ベンチマークを実行してください。
  • 同じコンパイラを試してください。
  • インストールされたインタプリタごとに異なる動作をするため、PerlやPythonなどのスクリプト言語のパフォーマンスは、オペレーティングシステムのパフォーマンスを示す良い指標ではありません。

おすすめ記事