OSXよりもWindowsの方がゲームの実行速度が優れているのはなぜですか?


11

たとえば、Bootcampを搭載したMac Miniでは、Team Fortress 2はOSXでは約20fps、Windowsでは約80fpsで動作します。これは一般的なケースのようです。どうしてこれなの?


どちらのオペレーティングシステムでもデュアルブートされた同じマシンです。
2011

「仮想マシンではない」のようにデュアルブートしましたか?
horatio 2011

1
はい、どちらかのOSで直接起動します。
2011

1
Macユーザー(10か月)として、Windowsユーザーの誤解を目にするため、これらの質問は常に興味深いものです。
Ricket

回答:


15

WindowsのDirect3Dドライバーは、場合によっては特定のゲーム向けに途方もなく最適化されており、個々のハードウェアベンダーによって開発されています。

AppleのOpenGLドライバーは、Appleによって作成および保守(AFAIK)されており、UIを合成するなど、「一般的な」OSでの使用を目的としています。ゲームと高性能スループットの最適化はそれほどありません。

基本的には、たくさんの資源の多くずっと少ないリソースは、Mac上で同じことを行うために用意されていながら、ソースのは、Windows上での高速のDirectXを作りに行っています。


私は、ドライバーのシェーダーコンパイラーにさらに少し傾いていると思います。altdevblogaday.com/2011/07/20/…は、人気のあるゲームの場合、NV / AMDがハードウェアのシェーダーを手動で最適化することさえあると述べています。
Adam

5
ドライバーだけではなく、ゲーム開発者でもあります。彼らは通常、OpenGLの代わりにDirect3d / DirectXの最適化に多くのリソースを投資します。もう1つのケースは、ゲームが最初にWindows専用に開発され、後で移植される場合です。それはしなければなら本当に良いポート(例えば、コードの書き換えの多くをもたらすことができる)、それはほとんどの場合ではない同様の性能を...達成する必要があります。
bummzack 2011

では、Team Fortress 2はOSXではOpenGLでレンダリングされますが、WindowsではD3Dでレンダリングされますか?
2011

はい、Direct3DはWindows専用であるため、他のプラットフォームのゲームはすべてOpenGL(またはソフトウェア)を使用してレンダリングされます。WindowsもOpenGLをサポートしています。ただし、ほとんどのWindowsバージョンのゲームではDirect3Dが使用されます。これは、前述のように、Windowsのドライバーは通常、D3Dに最適化されているためです。
Ricket

13

MicrosoftがWindowsやDirectXに導入した最適化を軽視するつもりはありませんが、ほとんどのプログラムはWindowsでより良いパフォーマンスを発揮すると信じています。彼らはWindowsを念頭に置いて設計上の決定を行い、後で他のOS(Mac、Linuxなど)で機能させることを試みます。私は常にこの問題に遭遇しています。他のプロジェクトでは、Windows以外のシステムへの移植で多くの問題が発生しています。最初からそのように計画していたので、非常に少ない労力で複数のOS上に構築するプログラムを繰り返し作成しました。(実際に移植をしつこく行うのではなく)実際にそれを試みたら、何が必要かを学び、追加の作業はほとんど必要ありません。


ここでの非コーダーの好奇心:マルチプラットフォーム向けに設計すると、パフォーマンスはどうなりますか?たとえば、マルチプラットフォームゲームは、Windowsに焦点を当てたバージョンと同じ速度でWindows上で実行されますか?
Jason Pineo

@ジェイソン:それは費やされた時間とプラットフォームの特異性の詳細です。開発者がWindows用に完全に最適化されたコードを書き、OSX用に完全に最適化された別のコードを書き、プラットフォームに基づいて使用するコードを切り替えるのを妨げるものは何もありません。ただし、そのために費やされる時間とリソースは、そうすることの利点を上回ります。
ヨルダンミロナス2011

@ジェイソン:その場合、それは本当にあなたがゲームをどれだけうまくデザインしたか(そして私がデザインと言ったとき、私は実際のコーディングではなく計画を意味する)とさまざまなOSの相違の程度に依存します。それらが非常に異なる場合は、Jordaanのコメントは、各OSに個別に対処する必要がある場合に適切です。しかし、OpenGLのような共通のインターフェースを使用し、やがてさまざまなAPIが互いに概念を借用するようになり、それらはすべてかなり似たものになっています。そのため、今日では、OSを除外せずに各機能を使用できるようにするために、機能のマッチングとソフトウェアの設計の練習が増えています。
Klox、2011

7

Macユーザーの仲間として、私は追加の要素を提供したいと思います。OSXのCPUスケジューラは、Windowsよりも「公平」です。

これは一種の複雑なコンピュータサイエンストピックなので、CPUスケジューラについて考える簡単な方法を次に示します。プロセッサは、一度に多くのタスク(開いているすべてのプログラムとバックグラウンドシステムプロセス)を処理する必要があります。実際に実行できるのは一度に2つだけです(たとえば、コアの数とコアあたりのスレッド数の積。デュアルコアi7は一度に4つのタスクを実行できます)。したがって、すべての作業を分割し、それらを交互に実行することで、実際に多くのことを一度に実行しているように見えます。2つのプログラムを実行すると、プロセッサは実際には2つのプログラムの処理を交互に交互に実行し、非常に高速です(ここでは数マイクロ秒、次に数マイクロ秒)。

物事がどの順序でどのくらいの期間実行されるかは、「スケジューリングアルゴリズム」によって決定されます。たとえば、ラウンドロビンスケジューラは、タスクを円状に配置し、各タスクを順番に処理します。別のスケジューラーは、残り時間の少ないものから順にタスクを配置する場合があります。小さなタスクはすぐに実行され、大きなタスクは実行されるまでしばらく待たなければならない場合があります。

WindowsとOS Xは大きく異なり、それらのスケジューリングアルゴリズムも少し異なります。Windowsは物事の優先順位付けについて少し「賢い」ので、コンピュータをより速く見えるようにするために目に見えるプログラムに特別な優先順位を与えます。ただし、OS Xはバックグラウンドプロセスに対してより公平です。全体的なアルゴリズムは2つのOS間でほとんど同じです(どちらもマルチレベルのフィードバックキューです)が、この小さな詳細により、ユーザーエクスペリエンスが異なります。

双方に利点があります。先ほど述べたように、Windowsで表示されるプログラムは、優先度が高くなるため、より速く表示されます。しかし、1つの目に見えるプログラムが大量の電力を消費することを決定した場合、コンピューター全体が少し苦しみます。OS Xのより公平なスケジューラーは、より予測可能で安定した速度をもたらし、オーディオおよびビデオ操作に適しています。たとえば、バックグラウンドで曲を再生している場合、Windowsよりも他のことを同時に行った場合に、途切れることはほとんどありません。

したがって、要点は次のとおりです。WindowsのフルスクリーンゲームはCPUで高い優先順位を取得し、バックグラウンドで実行されているものはすべて待機する必要があります。OS Xでは、これはそれほど当てはまりません。

スケジューラに関するいくつかの技術情報がここに示されています。この回答の残りの部分は、Windowsを10年以上使用して(場合によってはLinuxも)、過去10か月間の私のコンピュータサイエンス教育とOS Xの使用に基づいています。私は時々、より公正なスケジューラに不満を感じますが、他の場合にはその利点に感謝します。

ちなみに、Linuxにはさらに公平なスケジューラー実装があります。これが優れたサーバーになる理由ですが、私の意見ではユーザーエクスペリエンスは低下します。たとえば、コンピューターにタスクが行き詰まっている場合、他のすべてと同じ優先順位が与えられるため、カーソルはスムーズに応答を停止します。これは基本的にWindowsまたはOS Xでは発生しません。


-2

MacOSXに「移植」された一部のゲームは、実際にはエミュレータ内で実行されるWindowsゲームです。例の完全なリストはありませんが、少なくともそのようなSPOREがあるようです。

SPOREが公式にGNU / Linuxでリリースされたことはなく、Macバージョンは古くなっています。Macへの移植は、実際にはCiderと一緒にパッケージ化されたWindowsリリースです。これは、ゲームの周りのWINEの(現在は古い)バージョンをラップした、減価償却されたテクノロジーです。(出典

エミュレーター内でのソフトウェアの実行は、本質的にそれをネイティブで実行するよりも遅くなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.