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?
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?
Odpowiedzi:
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.
Oprócz bardzo dobrej odpowiedzi udzielonej przez Adama, chciałbym również zwrócić uwagę na inne ważne czynniki:
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
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.