Neden büyük dosyalar konsollar için küçük dosyalardan daha iyidir?


18

Konsol oyunu geliştiricileri neden PC'deki gibi küçük dosyalar yerine oyun verilerini depolamak için büyük dosyalar kullanıyor? Bellekte daha az akış mı var? Dosya ağacına birçok kez erişmeniz mi gerekiyor? Başka bir neden?


Belki de web dünyasında bir analog: CSS Sprites
Nick T

CSS sprite, sunucuları tek bir bağlantıyla birçok kaynak gönderemeyen eski paslı HTTP 1.1'i kullanmanın hala kötü bir dezavantajı. Yeni bir standart diliyorum.
Kos

1
Dileğin olmuştur @Kos verilmiş olmasına rağmen maalesef henüz uygulanmadı.
phihag

Bunun için teşekkürler! Onlara bir pasta pişirmek istiyorum ki daha hızlı çalışsınlar.
Kos

Yanıtlar:


37

Tek bir büyük dosyaya sahip olmak, platformdan bağımsız olarak performans için birkaç fayda sağlar. Birçok PC oyunu da büyük dosyalar kullanır.

  • Dosya sistemi dizin girişlerini (önbelleği kaçırırsanız açılan dosya başına birden çok arama içerebilir) kaçınmak için büyük dosyadaki her dosyanın ofsetini manuel olarak önbelleğe alabilirsiniz.

  • Dosyadaki verilerin sırasını tam olarak kontrol edersiniz, böylece yavaş arama ihtiyacını en aza indirecek şekilde düzenleyebilirsiniz.

  • Veri sıkıştırma genellikle tek bir büyük dosyada, tek tek dosyalardan daha etkilidir.

Aramalardan kaçınmanın yükleme sürelerini hızlandırmada çok etkili olduğunu unutmayın. Tipik bir sabit sürücünün arama süresi 10 ms ve 100 MB / sn aktarım hızı olabilir. Toplam 1 MB boyutunda 100 gölgelendirici dosyası yüklemeniz gerektiğini varsayalım. Her biri için bir arama yapmak zorunda kalırsanız, hepsini yüklemek bir saniye sürer. Tek bir arama ile hepsini yüklemek için 20 ms bakıyorsunuz.

Elbette tüm konsolların sabit sürücüleri yoktur ve optik sürücüler daha kötü arama performansına sahiptir, bu nedenle bu gölgelendiricilerin arama yaparken bir DVD'yi yüklemeleri 5 veya daha fazla saniye sürebilir. Ayrıca konsolların önbellek olarak kullanmak için bir PC'den daha az belleği vardır, bu nedenle verileri daha sık yükleme eğilimindedir.


9
Çok güzel bir cevap. Bu noktaya kadar, bir dosya veya birden fazla dosya arama örnekleri.
William Mariager

1
Ayrıca, rekabetçi çevrimiçi oyunlar için, oynatıcının binlerce küçük dosyayı tek tek doğrulamaktan çok, çok daha hızlıdır (ve çok daha az disk alanı kullanır).
Trevor Powell

Google anahtar kelime: sanal dosya sistemi. Ayrıca virütal dosya sistemlerine iyi duyulan ihtiyaç, sanal olmayan dosya sistemlerinin biraz daha parlatma kullanabileceğini gösteriyor gibi görünüyor :(.
Kos

Ancak bu SSD kullananlarımız için kötü - nadiren yüklü olan şeyleri HDD'lere taşıyamıyoruz, çünkü tüm oyun verileri büyük bir dosyanın içinde. WoW için asla Outland'a gitmiyorum; O dosyayı sadece SSD'den uzaklaştırırdım. Söylemek için mümkün değil ... COD 4.
Mircea Chirea

6

Adam tarafından verilen çok iyi bir cevap dışında, diğer bazı önemli faktörlere de dikkat çekmek istiyorum:

  1. Ne kadar az dosyaya sahip olursanız uygulamanızın konuşlandırılması o kadar kolay olur. Uygulamanızı iOS, Android veya Windows Phone gibi mobil platformlara dağıtmak istiyorsanız bu özellikle doğrudur. Windows Phone durumunda, istediğiniz kadar dosyaya sahip olsanız bile, dağıtım için kullanılan XAP dosyaları sadece bir zip arşivi olduğundan,

  2. Tüm öğelerinizin tek bir dosyada bulunması, hepsinin "parça halinde" indirilmesini / okunmasını sağlar . Birçok oyuncu, oyun başlamadan önce varlıkları indirmek veya paketlerini açmak için göze çarpan bir gecikmeyi mazeret gösterecektir, ancak oyun sırasında ince duraklamalarla bile karşılaştıklarında hoşgörüsüz olacaktır. Tabii ki kaynaklarınızı RAM'de önbelleğe alabilirsiniz, ancak bunları "parça halinde" yüklemek bu amaç için dosya başına yüklemekten daha kolaydır.


Android ve BlackBerry geliştirme yaptım ve çok fazla küçük dosyaya sahip olmakla ilgili herhangi bir sorunla karşılaşmadım. Şimdiye kadar daha büyük dosyaların yararının farkında değildim ...
ADB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.