彼らはしません!少なくとも、私はそうではありません。
私の答えを見てください。
昨年のPhoronixベンチマーク によると、FreeBSDのアプリケーションは、Debian(Stockfishチェスエンジン、Node.js、FLACエンコーディング、その他の計算タスクを含む)よりもほとんどの場合、実行が遅くなります。
Phoronixの記事自体は、パフォーマンスの違いのいくつかを、GCCコンパイラーではなくClangを使用することに起因しています。 その他 ZFSは本質的にext4より遅いため、ZFSを使用するとFreeBSDが遅くなるという意見があります。
しかし、GCC8でコンパイルされたFreeBSDの純粋な計算タスクでさえ、Linuxの場合よりもパフォーマンスが低下しました。
その原因は何ですか?これはFreeBSDとLinuxカーネルの違いによるものですか、それともドライバの品質の低下が原因であるのでしょうか、それとも他の理由がありますか?
PSより具体的にするために、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が複数のスレッドをどの程度適切に処理するかにかかっていると思います。
PPSより明確にするために、FreeBSDには 優れたネットワーク機能 があり、 使用されていることを認識しています) Netflixによって 。問題は、特に上記のような計算タスクについてです。
PPPSFreeBSD(TrueOS)をUbuntuと一緒に6コアデスクトップにインストールし、クイーンズベンチマークを自分で実行しようとしたところ、大きな違いはありませんでしたマルチスレッドのパフォーマンス。 PhoronixはFreeBSDで39%遅く動作したと主張していますが、私のテストでは3.7%だけ遅くなりました。これは、コンパイラバージョンのわずかな違い(TrueOSではgcc 7.4、Ubuntuではgcc 7.2)に起因する可能性があります。後でもっとテストします。
非常に多くの反対投票があり、自分でテストするために6コアデスクトップコンピューターにFreeBSD(TrueOS)をインストールするように刺激されました。 (注:他のオペレーティングシステムと一緒にTrueOSをインストールすることはお勧めしません。このインストールでは、USBドライブにインストールしようとしたにもかかわらず、ハードドライブの1つがワイプされたためです...ユーザーフレンドリーなエクスペリエンスではありません。)
その結果、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のパフォーマンスをテストするときは、次のことを行う必要があります。
ベンチマークにはOpenMPの使用が含まれています。これは違いが生じるかもしれないところです。使用されているOpenMPランタイムライブラリを確認します。
もう1つの注目すべき点は、逆アセンブリコードまたは中間表現です。実行中の命令の違いをすばやく見つけることができます。
これを要約すると、これに対する迅速かつ確実な答えはなく、いくつかの調査を行う必要があります。