Dlaczego duże pliki są lepsze niż małe pliki na konsole?

18

Dlaczego twórcy gier konsolowych używają dużych plików do przechowywania danych gry zamiast małych plików, takich jak na PC? Mniej strumieni w pamięci? Potrzebujesz dostępu do drzewa plików wiele razy? Inny powód?

Triang3l
źródło
Być może analog w świecie internetowym: CSS Sprites
Nick T
Duszki CSS to paskudny minus korzystania ze starego zardzewiałego protokołu HTTP 1.1, który najwyraźniej uniemożliwia serwerom wysyłanie wielu zasobów za pomocą jednego połączenia. Chciałbym nowego standardu.
Kos,
1
@ Ko Twoje życzenie zostało spełnione , ale niestety jeszcze nie zrealizowane.
phihag
Dzięki za to! Chcę upiec im ciasto, aby działały szybciej.
Kos,

Odpowiedzi:

37

Posiadanie pojedynczego dużego pliku ma kilka zalet pod względem wydajności, niezależnie od platformy. Wiele gier komputerowych również używa dużych plików.

  • Można ręcznie buforować przesunięcie każdego pliku w dużym pliku, aby uniknąć konieczności odczytywania pozycji katalogu systemu plików (co może wiązać się z wielokrotnymi próbami otwarcia pliku w przypadku pominięcia pamięci podręcznej).

  • Masz pełną kontrolę nad kolejnością danych w pliku, dzięki czemu możesz go ustawić tak, aby zminimalizować potrzebę powolnego wyszukiwania.

  • Kompresja danych jest na ogół bardziej skuteczna w przypadku pojedynczego dużego pliku niż w przypadku pojedynczych plików.

Pamiętaj, że unikanie poszukiwań jest bardzo skuteczne w przyspieszaniu czasów ładowania. Typowy dysk twardy może mieć czas wyszukiwania 10 ms i szybkość transferu 100 MB / s. Załóżmy, że musisz załadować 100 plików modułu cieniującego o łącznej wielkości 1 MB. Jeśli musisz wykonać wyszukiwanie dla każdego z nich, załadowanie ich wszystkich zajęłoby sekundę. Za jednym razem patrzysz na 20ms, aby załadować wszystkie.

Oczywiście nie wszystkie konsole mają dyski twarde, a napędy optyczne mają jeszcze gorszą wydajność wyszukiwania, więc te shadery mogą potrzebować 5 lub więcej sekund na załadowanie dysku DVD podczas wyszukiwania. Również konsole mają znacznie mniej pamięci do użycia jako pamięć podręczna niż komputer, więc mają tendencję do częstszego ładowania danych.

Adam
źródło
9
Bardzo miła odpowiedź. Do rzeczy, z przykładami szukania jednego pliku zamiast wielu plików.
William Mariager
1
Dodatkowo w przypadku konkurencyjnych gier online jest to znacznie, dużo szybsze (i zajmuje dużo mniej miejsca na dysku) sprawdzenie, czy odtwarzacz nie manipulował pojedynczym dużym plikiem, niż indywidualne sprawdzanie tysięcy małych plików.
Trevor Powell,
Słowo kluczowe Google: wirtualny system plików. Również dobrze uzasadniona potrzeba stosowania wirusowych systemów plików wydaje się wskazywać, że nie-wirtualne systemy plików mogą wymagać bardziej dopracowania :(.
Kos
Jest to jednak złe dla tych z nas, którzy używają dysków SSD - nie możemy przenieść rzadko ładowanych plików na dyski HDD, ponieważ wszystkie dane gry znajdują się w dużym pliku. Powiedz na WoW, nigdy nie jadę do Outland; Po prostu usunę ten plik z dysku SSD. Nie tak wykonalne, powiedzmy ... CoD 4.
Mircea Chirea 27.11.11
6

Oprócz bardzo dobrej odpowiedzi udzielonej przez Adama, chciałbym również zwrócić uwagę na inne ważne czynniki:

  1. Im mniej plików, tym łatwiejsze wdrożenie aplikacji. Jest to szczególnie ważne, jeśli chcesz wdrożyć aplikację na platformach mobilnych, takich jak iOS, Android lub Windows Phone. Nawet jeśli w przypadku Windows Phone nadal możesz mieć tyle plików, ile chcesz, ponieważ pliki XAP użyte do wdrożenia są tylko archiwum zip, jest to

  2. Posiadanie wszystkich zasobów w jednym pliku gwarantuje, że wszystkie zostaną pobrane / odczytane „w kawałku” . Wielu graczy usprawiedliwi zauważalne opóźnienie w pobieraniu zasobów lub rozpakowywaniu ich przed rozpoczęciem gry, ale nie będą pobłażliwi, dopóki będą musieli stawić czoła nawet subtelnym przerwom w trakcie gry. Oczywiście możesz wstępnie buforować swoje zasoby w pamięci RAM, ale ładowanie ich „w kawałku” jest w tym celu łatwiejsze niż ładowanie ich dla poszczególnych plików.

Alexander Galkin
źródło
Zrobiłem rozwój Androida i BlackBerry i nigdy nie miałem problemu z zbyt dużą ilością małych plików. Jednak do tej pory nie
zdawałem