उदाहरण के लिए, मेरे मैक मिनी पर बूटकैम्प के साथ, टीम किले 2 OSX में लगभग 20fps और विंडोज में 80fps पर चलता है। यह एक आम मामला लगता है। ऐसा क्यों है?
उदाहरण के लिए, मेरे मैक मिनी पर बूटकैम्प के साथ, टीम किले 2 OSX में लगभग 20fps और विंडोज में 80fps पर चलता है। यह एक आम मामला लगता है। ऐसा क्यों है?
जवाबों:
विंडोज पर डायरेक्ट 3 डी ड्राइवरों को हास्यास्पद रूप से अनुकूलित किया जाता है, कभी-कभी विशिष्ट गेम के लिए, और व्यक्तिगत हार्डवेयर विक्रेताओं द्वारा विकसित किया जाता है।
Apple के OpenGL ड्राइवर Apple द्वारा लिखे और बनाए गए हैं (AFAIK), और "सामान्य" OS उपयोग के लिए अभिप्रेत हैं, UI और व्हाट्सप को कंपोज़ करते हुए। गेमिंग और उच्च-प्रदर्शन थ्रूपुट के लिए कोई अनुकूलन नहीं है।
असल में, एक बहुत एक से संसाधनों का बहुत कुछ स्रोतों की, तेजी से विंडोज पर DirectX बनाने में चले गए हैं, जबकि बहुत कम संसाधनों मैक पर भी ऐसा ही करने के लिए उपलब्ध हैं।
जबकि मैं Microsoft और / या DirectX में डाल सकने वाले अनुकूलन को छूट नहीं दूंगा, मेरा दृढ़ता से मानना है कि अधिकांश प्रोग्राम विंडोज़ पर बेहतर प्रदर्शन करते हैं, क्योंकि डेवलपर्स उसी पर ध्यान केंद्रित करते हैं (यही वह धन है)। वे विंडोज को ध्यान में रखते हुए डिजाइन निर्णय लेते हैं, और फिर बाद में इसे अन्य ओएस (मैक, लिनक्स, आदि) में काम करने की कोशिश करते हैं। मैं लगातार इस काम में भाग लेता हूं: अन्य परियोजनाओं में गैर-विंडोज सिस्टम को पोर्ट करने में बहुत परेशानी होती है क्योंकि डेवलपर्स ने इसे एक विचार के रूप में माना। मेरे पास बार-बार लिखित कार्यक्रम हैं जो बहुत कम प्रयास के साथ कई ओएस पर बनाते हैं क्योंकि मैंने शुरुआत से ही इस तरह से योजना बनाई थी। एक बार जब आप वास्तव में इसे करने की कोशिश करते हैं (जैसा कि वास्तव में पोर्ट के बाद पोर्ट करने के लिए), तो आप सीखते हैं कि यह क्या लेता है और इसके लिए बहुत कम अतिरिक्त प्रयास की आवश्यकता होती है।
एक साथी मैक उपयोगकर्ता के रूप में, मैं एक अतिरिक्त कारक की पेशकश करना चाहूंगा: ओएस एक्स में सीपीयू अनुसूचक विंडोज की तुलना में अधिक "निष्पक्ष" है।
यह एक जटिल कंप्यूटर विज्ञान विषय है, इसलिए यहां आपके सीपीयू अनुसूचक के बारे में सोचने का एक सरल तरीका है: आपके प्रोसेसर को एक साथ कई कार्यों को टालना पड़ता है (आपके सभी खुले कार्यक्रम, प्लस पृष्ठभूमि सिस्टम प्रक्रियाएं)। यह केवल कर सकते हैं वास्तव में (, एक डुअल कोर i7 उदाहरण के लिए एक बार में 4 कार्यों कर सकते हैं, कोर समय की संख्या प्रति कोर धागे की संख्या) एक बार में एक जोड़े को काम करते हैं। इसलिए यह सभी कार्यों को टुकड़ों में विभाजित करता है, और उनके बीच बारी-बारी से ऐसा होता है कि ऐसा लगता है कि यह वास्तव में एक ही बार में बहुत कुछ कर रहा है। जब आप दो प्रोग्राम चलाते हैं, तो प्रोसेसर वास्तव में उन दो प्रोग्रामों को संसाधित करने के बीच आगे और पीछे बारी-बारी से होता है, वास्तव में तेज (जैसे, यहां कुछ माइक्रोसेकंड, और फिर कुछ माइक्रोसेकंड)।
पैटर्न जिसके लिए चीजों को किस क्रम में और कितने समय के लिए "शेड्यूलिंग एल्गोरिदम" द्वारा तय किया जाता है। उदाहरण के लिए, राउंड रॉबिन शेड्यूलर सिर्फ एक सर्कल में कार्यों को व्यवस्थित करता है और प्रत्येक को क्रम में संसाधित करता है। एक अन्य अनुसूचक कम से कम-से-अधिकांश समय से कार्यों की व्यवस्था कर सकता है - छोटे कार्य जल्दी से हो जाएंगे, और बड़े कार्यों को किए जाने से पहले थोड़ी देर इंतजार करना पड़ सकता है।
विंडोज और ओएस एक्स बहुत अलग हैं, और उनके शेड्यूलिंग एल्गोरिदम भी अलग हैं। विंडोज चीजों को प्राथमिकता देने के बारे में थोड़ा "होशियार" है, इसलिए यह कंप्यूटर को तेज दिखाने के लिए दृश्य कार्यक्रमों को अतिरिक्त प्राथमिकता देता है। हालाँकि, OS X, पृष्ठभूमि प्रक्रियाओं के लिए अधिक उचित है। दोनों ओएस के बीच समग्र एल्गोरिदम बहुत अधिक हैं (वे दोनों बहुस्तरीय प्रतिक्रिया कतार हैं ), लेकिन इस छोटे से विस्तार से एक अलग उपयोगकर्ता अनुभव होता है।
दोनों पक्षों के अपने फायदे हैं। जैसा मैंने कहा, विंडोज में दृश्यमान कार्यक्रम तेजी से दिखाई देंगे क्योंकि उन्हें अधिक प्राथमिकता मिलती है; लेकिन अगर एक दृश्य कार्यक्रम बहुत अधिक शक्ति लेने का फैसला करता है, तो पूरा कंप्यूटर थोड़ा अधिक पीड़ित होता है। ओएस एक्स के अधिक निष्पक्ष अनुसूचक का परिणाम अधिक पूर्वानुमान और स्थिर गति है, जो ऑडियो और वीडियो संचालन के लिए अच्छा है। उदाहरण के लिए यदि आप बैकग्राउंड में कोई गाना बजा रहे हैं, तो जब आप विंडोज की तुलना में एक ही समय में दूसरे काम करते हैं, तो हकलाने की संभावना कम होती है।
तो, takeaway बिंदु यह है: विंडोज में एक पूर्ण-स्क्रीन गेम सीपीयू पर उच्च प्राथमिकता प्राप्त करने जा रहा है और पृष्ठभूमि में चलने वाली किसी भी चीज को बस इंतजार करना होगा। ओएस एक्स में, यह मामला कम है।
अनुसूचियों के बारे में कुछ तकनीकी जानकारी यहाँ दी गई है ; इस उत्तर का शेष मेरे कंप्यूटर विज्ञान की शिक्षा और पिछले 10 महीनों में ओएस एक्स के मेरे उपयोग से है, 10 साल से अधिक समय तक विंडोज का उपयोग करने के बाद (और कभी-कभी लिनक्स)। मैं कभी-कभी अधिक निष्पक्ष अनुसूचक से निराश होता हूं, लेकिन अन्य बार मैं इसके फायदे की सराहना करता हूं।
लिनक्स, वैसे, एक और अधिक निष्पक्ष अनुसूचक कार्यान्वयन है; यह वही है जो इसे एक महान सर्वर बनाता है, लेकिन मेरी राय में उपयोगकर्ता अनुभव को नीचा दिखाया गया है। उदाहरण के लिए, जब आपका कंप्यूटर कार्यों से टकरा जाता है, तो आपका कर्सर सुचारू रूप से प्रतिक्रिया देना बंद कर देगा क्योंकि उसे हर चीज के समान प्राथमिकता दी जाती है। यह मूल रूप से विंडोज या ओएस एक्स में कभी नहीं होता है।
MacOSX के लिए "पोर्टेड" किए गए कुछ गेम वास्तव में एक एमुलेटर के भीतर चलने वाले विंडोज गेम हैं। जबकि मेरे पास उदाहरणों की पूरी सूची नहीं है, ऐसा लगता है कि कम से कम ऐसा है जो इस तरह था:
SPORE को कभी भी आधिकारिक तौर पर GNU / Linux और मैक संस्करण को खराब तरीके से जारी नहीं किया गया था। मैक पोर्ट वास्तव में साइडर के साथ पैक किया गया विंडोज रिलीज़ है, जो कि खेलों के चारों ओर वाइन के एक (अब पुराना) संस्करण को लपेटने वाली एक मूल्यह्रास तकनीक है। ( स्रोत )
एक एमुलेटर के भीतर एक सॉफ्टवेयर चलाना मूल रूप से चलाने की तुलना में परिभाषा धीमी है।