Örneğin, Bootcamp özellikli Mac Mini'mde Team Fortress 2, OSX'te yaklaşık 20 fps ve Windows'ta 80 fps'de çalışıyor. Bu yaygın bir durum gibi görünüyor. Bu neden?
Örneğin, Bootcamp özellikli Mac Mini'mde Team Fortress 2, OSX'te yaklaşık 20 fps ve Windows'ta 80 fps'de çalışıyor. Bu yaygın bir durum gibi görünüyor. Bu neden?
Yanıtlar:
Windows'taki Direct3D sürücüleri bazen belirli oyunlar için gülünç bir şekilde optimize edilir ve bireysel donanım satıcıları tarafından geliştirilir.
Apple'ın OpenGL sürücüleri Apple tarafından yazılır ve korunur (AFAIK) ve "genel" işletim sistemi kullanımı için tasarlanmıştır, kullanıcı arayüzünü bir araya getirir. Oyun ve yüksek performanslı iş hacmi için çok fazla optimizasyon yoktur.
Temel olarak, birçok kaynaktan gelen birçok kaynak Windows'ta DirectX'i hızlı hale getirirken, Mac'te de bunu yapmak için çok daha az kaynak mevcut.
Microsoft'un Windows ve / veya DirectX'e koyduğu optimizasyonu azaltmayacak olsam da, çoğu programın Windows'ta daha iyi performans gösterdiğine inanıyorum, çünkü geliştiricilerin odaklandığı şey bu (paranın olduğu yer). Tasarım kararlarını Windows göz önünde bulundurarak yaparlar ve daha sonra diğer işletim sistemlerinde (Mac, Linux, vb.) Çalışmaya çalışırlar. İş yerinde sürekli olarak bu durumla karşılaşıyorum: diğer projeler Windows dışındaki sistemlere geçişte çok sorun yaşıyor çünkü geliştiriciler bunu bir düşünce olarak değerlendiriyorlardı. Birden fazla işletim sistemi üzerine çok az çaba harcayan programlar yazdım çünkü en başından bu şekilde planladım. Bunu gerçekten yapmaya çalıştıktan sonra (gerçekte limanı kindarca yapmak yerine), ne gerektiğini öğrenirsiniz ve çok az çaba gerektirir.
Diğer bir Mac kullanıcısı olarak, ek bir faktör daha sunmak istiyorum: OS X'teki CPU zamanlayıcı, Windows'dan daha "adil".
Bu bir tür karmaşık bilgisayar bilimi konusudur, bu yüzden CPU zamanlayıcınızı düşünmenin basit bir yolu: işlemciniz birçok görevi aynı anda (tüm açık programlarınız ve arka plan sistem süreçleriniz) dengelemelidir. Sadece olabilir aslında (; bir çift çekirdekli i7 örneğin aynı anda 4 görevleri yapabileceği çekirdekler sayısı çekirdek başına iplik sayısı) aynı anda bir kaç şeyler yapıyorlar. Böylece tüm işi parçalara ayırır ve aralarında dönüşümlü olarak çalışır, böylece aynı anda birçok şey yapıyormuş gibi görünür. Eğer iki program çalıştırdığınızda, işlemci aslında sadece ileri geri bu iki program işleme arasında dönüşümlü olduğunu gerçekten hızlı bir şekilde değişiyor ( , burada birkaç mikrosaniye ve sonra birkaç mikrosaniye).
Bir şeylerin hangi sırada ve ne kadar süreyle bir "zamanlama algoritması" tarafından yürütüldüğü paterni. Örneğin, yuvarlak robin zamanlayıcısı görevleri bir daire içinde düzenler ve her birini sırayla işler. Başka bir zamanlayıcı, görevleri en azdan en fazla zamana kadar düzenleyebilir - küçük görevler hızlı bir şekilde yapılır ve büyük görevlerin yapılmadan önce bir süre beklemesi gerekebilir.
Windows ve OS X çok farklıdır ve zamanlama algoritmaları da biraz farklıdır. Windows, şeylere öncelik vermek konusunda biraz "daha akıllı" olduğundan, bilgisayarın daha hızlı görünmesi için görünür programlara ekstra öncelik verir. Ancak OS X, arka plan süreçleri için daha adil. Genel algoritmalar iki işletim sistemi arasında aynıdır (her ikisi de çok düzeyli geri bildirim kuyruklarıdır) ), ancak bu küçük ayrıntı farklı bir kullanıcı deneyimiyle sonuçlanır.
Her iki tarafın da avantajları vardır. Dediğim gibi, Windows'daki görünür programlar daha öncelikli olacağından daha hızlı görünecek; ancak görünür bir program çok fazla güç almaya karar verirse, tüm bilgisayar biraz daha fazla acı çeker. OS X'in daha adil zamanlayıcısı, daha öngörülebilir ve sabit hızlarla sonuçlanır, bu da ses ve video işlemleri için iyidir. Örneğin, arka planda bir şarkı çalıyorsanız, Windows'takinden aynı anda başka şeyler yaptığınızda kekeme olasılığı daha düşüktür.
Yani, paket servisi olan nokta şu: Windows'da tam ekran bir oyun CPU'da yüksek öncelik kazanacak ve arka planda çalışan her şeyin beklemesi gerekecek. OS X'te durum daha azdır.
Programlayıcılar hakkında bazı teknik bilgiler burada verilmiştir ; Bu cevabın geri kalanı, bilgisayar bilimleri eğitimimden ve son 10 ay içinde, Windows'u 10 yıldan fazla bir süredir (ve bazen de Linux) kullandıktan sonra OS X'i kullanmamdan kaynaklanıyor. Bazen daha adil bir zamanlayıcı tarafından hayal kırıklığına uğrarım, ancak diğer zamanlarda avantajlarını takdir ediyorum.
Bu arada Linux, daha adil bir zamanlayıcı uygulamasına sahiptir; Bu onu harika bir sunucu yapan şeydir, ancak bence kullanıcı deneyimi bozulmuştur. Örneğin, bilgisayarınız görevlerle dolup taştığında, imleciniz diğer her şeyle aynı önceliğe sahip olduğu için sorunsuz bir şekilde yanıt vermeyecektir. Bu temelde Windows veya OS X'te asla gerçekleşmez.
MacOSX'a "taşınan" bazı oyunlar aslında bir emülatörde çalışan Windows oyunlarıdır. Örneklerin tam bir listesi olmasa da, en az SPORE gibi görünüyor gibi görünüyor:
SPORE, GNU / Linux'ta hiçbir zaman resmi olarak yayınlanmadı ve Mac sürümü kötü yaşlandı. Mac bağlantı noktası aslında, CINE ile paketlenmiş Windows oyunudur ve bu, WINE'ın (şimdi eski) bir sürümünü oyunların etrafına saran amortismanlı bir teknolojidir. ( Kaynak )
Bir emülatörde yazılım çalıştırmak tanımı gereği yerel olarak çalıştırmaktan daha yavaştır.