왜 OSX보다 Windows에서 게임이 훨씬 더 잘 실행됩니까?


11

예를 들어 Bootcamp가있는 Mac Mini에서 Team Fortress 2는 OSX에서 약 20fps, Windows에서 80fps로 실행됩니다. 이것은 일반적인 경우 인 것 같습니다. 왜 이런거야?


운영 체제에 이중 부팅 된 동일한 시스템입니다.
sans

"가상 머신이 아님"에서와 같이 이중 부팅이 올바 릅니까?
horatio

1
예, 어느 OS로든 직접 부팅합니다.
sans

1
Mac 사용자 (10 개월)로서 Windows 사용자의 오해를 볼 수 있기 때문에 이러한 질문이 마음에 들지 않는 맹렬한 불길 / 불길로 이어지지 않는 한 항상 흥미로운 질문입니다.
Ricket

답변:


15

Windows의 Direct3D 드라이버는 때로는 특정 게임에 맞게 엄청나게 최적화되어 있으며 개별 하드웨어 공급 업체에서 개발했습니다.

Apple의 OpenFA 드라이버는 Apple에서 작성 및 유지 보수 (AFAIK)하며 UI를 구성하는 등의 "일반적인"OS 사용을위한 것입니다. 게임 및 고성능 처리량에 대한 최적화는 그리 많지 않습니다.

기본적으로, 많은 A로부터 자원을 많이 훨씬 적은 자원이 Mac에서 동일한 작업을 수행 할 수있는 동안 소스의 빠르고, 윈도우에서의 DirectX를 만들기로 갔다.


나는 드라이버의 셰이더 컴파일러를 좀 더 구체적으로 설명합니다. altdevblogaday.com/2011/07/20/… 는 인기있는 게임의 경우 NV / AMD는 하드웨어에 맞게 쉐이더를 수동으로 최적화 할 것이라고 말합니다.
Adam

5
드라이버 일뿐만 아니라 게임 개발자이기도합니다. 일반적으로 OpenGL 대신 Direct3d / DirectX를 최적화하는 데 더 많은 리소스를 투자합니다. 또 다른 경우는 게임이 처음에 창용으로 개발되어 나중에 이식되는 경우입니다. 비슷한 성능을 얻으려면 정말 좋은 포트 여야합니다 (예 : 코드 재 작성이 많이 발생할 수 있음). 대부분의 경우는 아닙니다.
bummzack

그렇다면 Team Fortress 2는 OSX에서는 OpenGL로 렌더링되지만 Windows에서는 D3D로 렌더링됩니까?
sans

sans, 예, Direct3D는 Windows 전용이므로 다른 플랫폼의 모든 게임은 OpenGL (또는 소프트웨어 ..)을 사용하여 렌더링됩니다. Windows는 OpenGL도 지원합니다. 그러나 언급 한 바와 같이 Windows 용 드라이버는 일반적으로 D3D에 대해 훨씬 더 최적화되어 있기 때문에 대부분의 Windows 버전 게임에서는 Direct3D를 사용합니다.
Ricket

13

Microsoft가 Windows 및 / 또는 DirectX에 적용했을 수있는 최적화를 할인하지는 않지만 대부분의 프로그램은 개발자가 중점을 두는 것 (즉, 돈이있는 곳)이기 때문에 Windows에서 더 나은 성능을 낼 수 있다고 믿습니다. 그들은 Windows를 염두에두고 디자인 결정을 한 다음 나중에 다른 OS (Mac, Linux 등)에서 작동하도록 노력합니다. 나는 계속해서 직장 에서이 문제를 겪습니다. 다른 프로젝트는 Windows가 아닌 시스템으로 이식하는 데 너무 많은 어려움을 겪습니다. 처음부터 그렇게 계획했기 때문에 적은 노력으로 여러 OS에서 빌드하는 프로그램을 반복해서 작성했습니다. 실제로 포트를 실제로 시도한 후에 (실제로 포트를 과감하게 수행하는 것이 아니라), 필요한 것을 배우고 추가 노력이 거의 필요하지 않습니다.


비코 더에 대한 호기심 : 다중 플랫폼을 설계 할 때 성능은 어떻게됩니까? 예를 들어 Windows에서 멀티 플랫폼 게임을 Windows 중심 버전만큼 빠르게 실행합니까?
Jason Pineo

@Jason : 소요 시간과 플랫폼 고유성에 대한 자세한 내용입니다. 개발자가 Windows에 완전히 최적화 된 코드를 작성하고 OSX에 완전히 최적화 된 별도의 코드를 작성한 다음 플랫폼을 기반으로 사용되는 코드를 작성하는 것을 막을 수있는 것은 없습니다. 그러나 그렇게하는 데 소요되는 시간과 자원은 종종 그렇게하는 것의 이점을 능가합니다.
Jordaan Mylonas

@Jason :이 경우 실제로 게임을 얼마나 잘 디자인했는지 (그리고 디자인을 말할 때 실제 코딩이 아니라 계획을 의미 함) 다른 OS가 얼마나 다른지에 따라 달라집니다. 그것들이 매우 다르다면 Jordaan의 의견은 각 OS를 별도로 다루어야하는 곳에서 적절합니다. 그러나 OpenGL과 같은 공통 인터페이스와 시간이 지남에 따라 서로 다른 API가 서로 개념을 빌리면서 모두 비슷해졌습니다. 따라서 오늘날에는 OS를 제외하지 않고 각 기능을 사용할 수 있도록 기능을 일치시키고 소프트웨어를 설계하는 데 더 많은 연습이 필요합니다.
Klox

7

다른 Mac 사용자에게는 추가 요소를 제공하고 싶습니다. OS X의 CPU 스케줄러는 Windows보다 "공정"합니다.

이것은 복잡한 컴퓨터 과학 주제이므로 CPU 스케줄러를 생각하는 간단한 방법이 있습니다. 프로세서는 한 번에 많은 작업 (모든 열린 프로그램과 백그라운드 시스템 프로세스)을 저글링해야합니다. 실제로 는 한 번에 몇 가지 작업 만 수행 할 수 있습니다 (코어 수에 코어 당 스레드 수를 곱한 경우, 예를 들어 듀얼 코어 i7은 한 번에 4 개의 작업을 수행 할 수 있음). 따라서 모든 작업을 여러 조각으로 나누고 그 사이를 번갈아 가며 실제로 한 번에 많은 일을하는 것처럼 보입니다. 두 개의 프로그램을 실행할 때 프로세서는 실제로 두 개의 프로그램을 처리 할 때마다 앞뒤로 번갈아 가며 (여기서는 몇 마이크로 초, 몇 마이크로 초) 매우 빠릅니다.

"스케줄링 알고리즘"에 의해 어떤 순서로 그리고 얼마나 오랫동안 실행되는지에 대한 패턴. 예를 들어 라운드 로빈 스케줄러는 작업을 원으로 정렬하고 각 작업을 순서대로 처리합니다. 다른 스케줄러는 남은 시간부터 가장 적은 시간까지 작업을 정렬 할 수 있습니다. 작은 작업은 빠르게 수행되며 큰 작업은 완료되기 전에 잠시 기다려야 할 수 있습니다.

Windows와 OS X는 매우 다르며 예약 알고리즘도 약간 다릅니다. Windows는 우선 순위를 정하는 데있어 "지능적"이므로 컴퓨터를 더 빨리 표시하기 위해 프로그램을 우선적으로 보여줍니다. 그러나 OS X은 백그라운드 프로세스보다 더 공정합니다. 전체 알고리즘은 두 OS 사이에서 거의 동일 하지만 ( 모두 다중 레벨 피드백 큐임 )이 작은 세부 사항은 다른 사용자 경험을 초래합니다.

양쪽 모두 장점이 있습니다. 내가 말했듯이 Windows에서 보이는 프로그램은 우선 순위가 높아지기 때문에 더 빨리 나타납니다. 그러나 하나의 눈에 보이는 프로그램이 많은 전력을 소비하기로 결정하면 전체 컴퓨터가 약간 더 고통받습니다. OS X의보다 공정한 스케줄러는보다 예측 가능하고 안정적인 속도를 제공하므로 오디오 및 비디오 작업에 좋습니다. 예를 들어 백그라운드에서 노래를 재생하는 경우 Windows에서와 동시에 다른 작업을 수행 할 때 더듬을 가능성이 줄어 듭니다.

따라서 중요한 점은 Windows의 전체 화면 게임이 CPU에서 우선 순위가 높아지고 백그라운드에서 실행되는 모든 항목은 기다려야한다는 것입니다. OS X에서는 그렇지 않습니다.

스케줄러에 대한 일부 기술 정보는 여기에 있습니다 . 이 답변의 나머지 부분은 지난 10 개월 동안 Windows를 10 년 이상 (그리고 때로는 Linux) 사용한 후 컴퓨터 과학 교육과 지난 10 개월 동안의 OS X 사용에 대한 것입니다. 때로는 더 공정한 스케줄러에 좌절하지만 다른 경우에는 그 장점에 감사합니다.

그런데 리눅스는 훨씬 더 공정한 스케줄러 구현을 가지고있다. 이것이 훌륭한 서버이지만, 제 생각에는 사용자 경험이 저하됩니다. 예를 들어, 컴퓨터가 작업을 수행 할 때 커서는 다른 모든 것과 동일한 우선 순위를 갖기 때문에 부드럽게 응답하지 않습니다. 이것은 기본적으로 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.