Na przykład na moim Macu Mini z Bootcamp Team Fortress 2 działa z prędkością około 20 klatek na sekundę w OSX i 80 klatek na sekundę w Windows. To wydaje się być częstym przypadkiem. Dlaczego to?
Na przykład na moim Macu Mini z Bootcamp Team Fortress 2 działa z prędkością około 20 klatek na sekundę w OSX i 80 klatek na sekundę w Windows. To wydaje się być częstym przypadkiem. Dlaczego to?
Odpowiedzi:
Sterowniki Direct3D w systemie Windows są absurdalnie zoptymalizowane, czasem dla określonych gier i opracowane przez poszczególnych dostawców sprzętu.
Sterowniki OpenGL firmy Apple są napisane i obsługiwane przez Apple (AFAIK) i są przeznaczone do „ogólnego” użytkowania systemu operacyjnego, tworzenia interfejsu użytkownika i tym podobnych. Nie ma tak dużej optymalizacji gier i wysokiej wydajności.
Zasadniczo wiele zasobów z wielu źródeł przyczyniło się do szybkiego działania DirectX w systemie Windows, podczas gdy na Macu dostępnych jest znacznie mniej zasobów.
Chociaż nie będę pomijać optymalizacji, którą Microsoft mógł zastosować w systemie Windows i / lub DirectX, mocno wierzę, że większość programów działa lepiej w systemie Windows po prostu dlatego, że na tym koncentrują się programiści (tam są pieniądze). Podejmują decyzje projektowe z myślą o systemie Windows, a następnie starają się, aby działał w innych systemach operacyjnych (Mac, Linux itp.). Ciągle spotykam się z tym w pracy: inne projekty mają tak duży problem z portowaniem do systemów innych niż Windows, ponieważ programiści potraktowali to jako następstwo. Wielokrotnie pisałem programy, które budują na wielu systemach operacyjnych przy bardzo małym wysiłku, ponieważ planowałem to w ten sposób od samego początku. Kiedy naprawdę spróbujesz to zrobić (w przeciwieństwie do niechętnego robienia portu po fakcie), dowiadujesz się, czego potrzeba i nie wymaga to dodatkowego wysiłku.
Jako inny użytkownik komputerów Mac chciałbym zaoferować dodatkowy czynnik: harmonogram CPU w OS X jest bardziej „sprawiedliwy” niż w Windows.
Jest to dość skomplikowany temat informatyki, dlatego oto prosty sposób na pomyślenie o harmonogramie procesora: procesor musi żonglować wieloma zadaniami jednocześnie (wszystkie otwarte programy oraz procesy systemowe w tle). Może faktycznie wykonywać tylko kilka rzeczy naraz (liczba rdzeni razy liczba wątków na rdzeń; na przykład dwurdzeniowy i7 może wykonywać 4 zadania jednocześnie). Dzieli więc całą pracę na części i naprzemiennie, tak że wygląda na to, że robi wiele rzeczy naraz. Kiedy uruchamiasz dwa programy, procesor tak naprawdę naprzemiennie naprzemiennie przetwarza te dwa programy, naprawdę szybko (na przykład kilka mikrosekund tutaj, a następnie kilka mikrosekund).
Wzorzec, dla którego rzeczy są wykonywane w jakiej kolejności i jak długo określa „algorytm planowania”. Na przykład program do planowania robin okrągłych po prostu porządkuje zadania w okręgu i przetwarza je kolejno. Inny harmonogram może uporządkować zadania od pozostałego do najkrótszego czasu - małe zadania byłyby wykonywane szybko, a duże zadania musiałyby chwilę poczekać.
Windows i OS X są bardzo różne, a ich algorytmy planowania są nieco inne. Windows jest trochę „mądrzejszy”, jeśli chodzi o ustalanie priorytetów, dlatego nadaje priorytet widocznym programom, aby komputer wyglądał szybciej. OS X jest jednak bardziej sprawiedliwy dla procesów działających w tle. Ogólne algorytmy są zasadniczo takie same między dwoma systemami operacyjnymi (oba są wielopoziomowymi kolejkami informacji zwrotnych ), ale ten mały szczegół powoduje inne wrażenia użytkownika.
Obie strony mają swoje zalety. Tak jak powiedziałem, widoczne programy w systemie Windows pojawią się szybciej, ponieważ będą miały wyższy priorytet; ale jeśli jeden widoczny program decyduje się na pobór dużej mocy, cały komputer cierpi nieco bardziej. Bardziej sprawiedliwy harmonogram OS X zapewnia bardziej przewidywalne i stabilne prędkości, co jest dobre dla operacji audio i wideo. Na przykład, jeśli grasz piosenkę w tle, rzadziej jąka się, gdy robisz inne rzeczy w tym samym czasie niż w systemie Windows.
Zatem kwestią na wynos jest to: gra pełnoekranowa w systemie Windows będzie miała wysoki priorytet na procesorze, a wszystko działające w tle będzie musiało poczekać. W OS X tak nie jest.
Niektóre informacje techniczne na temat harmonogramów podano tutaj ; pozostała część tej odpowiedzi pochodzi z mojej edukacji informatycznej i korzystania z systemu OS X w ciągu ostatnich 10 miesięcy, po tym, jak korzystałem z systemu Windows przez ponad 10 lat (i czasami Linux). Czasami frustruje mnie bardziej sprawiedliwy harmonogram, ale innym razem doceniam jego zalety.
Nawiasem mówiąc, Linux ma jeszcze bardziej sprawiedliwą implementację harmonogramu; to sprawia, że jest to świetny serwer, ale moim zdaniem wrażenia użytkownika są obniżone. Na przykład, gdy komputer jest zajęty zadaniami, kursor przestanie odpowiadać płynnie, ponieważ ma taki sam priorytet jak wszystko inne. Zasadniczo nigdy nie dzieje się to w systemie Windows lub OS X.
Niektóre gry, które zostały „przeniesione” na MacOSX, to tak naprawdę gry na Windows działające w emulatorze. Chociaż nie mam pełnej listy przykładów, wydaje się, że istnieje co najmniej SPORE:
SPORE nigdy nie został oficjalnie wydany na GNU / Linuksie, a wersja na Maca starzeje się źle. Port Mac jest w rzeczywistości wersją systemu Windows wyposażoną w Cider, który jest przestarzałą technologią obejmującą (obecnie starą) wersję WINE wokół gier. ( Źródło )
Uruchamianie oprogramowania w emulatorze jest z definicji wolniejsze niż uruchamianie go natywnie.