Mengapa file besar lebih baik daripada file kecil untuk konsol?

18

Mengapa pengembang game konsol menggunakan file besar untuk menyimpan data game, bukan file kecil seperti di PC? Lebih sedikit stream dalam memori? Perlu mengakses pohon file berkali-kali? Alasan lain?

Triang3l
sumber
Mungkin analog di dunia web: CSS Sprite
Nick T
CSS sprite adalah kelemahan buruk dari masih menggunakan HTTP 1.1 berkarat tua yang tampaknya membuat server tidak dapat mengirim banyak sumber daya dengan satu koneksi. Saya berharap untuk standar baru.
Kos
1
@Kos Keinginan Anda telah dikabulkan , meskipun sayangnya belum diimplementasikan.
phihag
Terima kasih untuk ini! Saya ingin membuatkan kue untuk mereka agar mereka bekerja lebih cepat.
Kos

Jawaban:

37

Memiliki satu file besar memiliki beberapa manfaat untuk kinerja, apa pun platformnya. Banyak game PC juga menggunakan file besar.

  • Anda dapat secara manual men-cache offset dari setiap file dalam file besar, untuk menghindari keharusan membaca entri direktori sistem file (yang dapat melibatkan beberapa pencarian per file yang dibuka jika Anda melewatkan cache).

  • Anda mendapatkan kontrol penuh atas urutan data di dalam file, sehingga Anda dapat mengaturnya untuk meminimalkan kebutuhan akan pencarian yang lambat.

  • Kompresi data umumnya lebih efektif pada satu file besar, daripada pada file individual.

Perhatikan bahwa menghindari pencarian sangat efektif untuk mempercepat waktu muat. Hard drive biasa mungkin memiliki waktu pencarian 10 ms, dan kecepatan transfer 100MB / s. Katakanlah Anda perlu memuat 100 file shader dengan ukuran total 1MB. Jika Anda harus melakukan pencarian untuk masing-masing itu akan membutuhkan satu detik untuk memuat semuanya. Dengan pencarian tunggal Anda sedang mencari 20 ms untuk memuat semuanya.

Tentu saja tidak semua konsol memiliki hard drive, dan drive optik memiliki kinerja pencarian yang lebih buruk, sehingga shader mungkin memerlukan waktu 5 atau lebih detik untuk memuat DVD ketika mencari. Konsol juga memiliki lebih sedikit memori untuk digunakan sebagai cache daripada PC, jadi mereka cenderung memuat data lebih sering.

Adam
sumber
9
Jawaban yang sangat bagus Intinya, dengan contoh mencari satu file vs beberapa file.
William Mariager
1
Selain itu, untuk permainan daring yang kompetitif, ini jauh, jauh lebih cepat (dan menggunakan ruang disk jauh lebih sedikit) untuk memverifikasi bahwa pemain belum mengutak-atik satu file besar, daripada memvalidasi ribuan file kecil secara individual.
Trevor Powell
Kata kunci Google: sistem file virtual. Juga kebutuhan yang dinyatakan dengan baik untuk sistem file virutal tampaknya menunjukkan bahwa sistem file non-virtual dapat menggunakan lebih banyak pemoles :(.
Kos
Namun ini buruk bagi kita yang menggunakan SSD - kita tidak bisa memindahkan barang yang jarang dimuat ke HDD, karena semua data game ada di dalam file besar. Katakanlah untuk WoW, saya tidak pernah pergi ke Outland; Saya baru saja memindahkan file itu dari SSD. Tidak bisa dilakukan untuk mengatakan ... CoD 4.
Mircea Chirea
6

Terlepas dari jawaban yang sangat bagus yang diberikan oleh Adam, saya juga ingin menunjukkan beberapa faktor penting lainnya:

  1. Semakin sedikit file yang Anda miliki, semakin mudah penyebaran aplikasi Anda. Ini terutama benar jika Anda ingin menggunakan aplikasi Anda pada platform seluler, seperti iOS, Android atau Windows Phone. Bahkan jika dalam kasus Windows Phone Anda masih dapat memiliki banyak file seperti yang Anda inginkan, karena XAP-file, yang digunakan untuk penyebaran, hanyalah arsip zip, itu adalah

  2. Memiliki semua aset Anda dalam satu file tunggal memastikan bahwa semuanya sudah diunduh / baca "dalam keadaan utuh" . Banyak gamer akan memaafkan Anda penundaan yang nyata untuk mengunduh aset atau membongkarnya sebelum permainan dimulai, tetapi mereka tidak akan menuruti asalkan mereka menghadapi jeda yang bahkan halus selama permainan. Tentu saja Anda dapat melakukan pra-cache sumber daya Anda dalam RAM, tetapi memuatnya "secara terpisah" masih lebih mudah untuk tujuan ini daripada memuatnya berdasarkan per file.

Alexander Galkin
sumber
Saya telah melakukan pengembangan Android dan BlackBerry dan tidak pernah mengalami masalah dengan terlalu banyak file kecil. Saya tidak mengetahui manfaat dari file yang lebih besar sampai sekarang ...
ADB