Tại sao các nhà phát triển trò chơi console sử dụng các tệp lớn để lưu trữ dữ liệu trò chơi thay vì các tệp nhỏ như trên PC? Ít luồng trong bộ nhớ? Cần truy cập cây tập tin nhiều lần? Lý do khác?
Tại sao các nhà phát triển trò chơi console sử dụng các tệp lớn để lưu trữ dữ liệu trò chơi thay vì các tệp nhỏ như trên PC? Ít luồng trong bộ nhớ? Cần truy cập cây tập tin nhiều lần? Lý do khác?
Câu trả lời:
Có một tệp lớn duy nhất có một vài lợi ích cho hiệu suất, bất kể nền tảng. Nhiều game PC cũng sử dụng các file lớn.
Bạn có thể lưu bộ đệm của từng tệp trong tệp lớn theo cách thủ công, để tránh phải đọc các mục nhập thư mục hệ thống tệp (có thể liên quan đến nhiều lần tìm kiếm trên mỗi tệp được mở nếu bạn bỏ lỡ bộ đệm).
Bạn có toàn quyền kiểm soát thứ tự của dữ liệu trong tệp, vì vậy bạn có thể sắp xếp nó để giảm thiểu nhu cầu tìm kiếm chậm.
Nén dữ liệu thường hiệu quả hơn trên một tệp lớn, so với các tệp riêng lẻ.
Lưu ý rằng việc tránh tìm kiếm rất hiệu quả trong việc tăng tốc thời gian tải. Một ổ cứng thông thường có thể có thời gian tìm kiếm 10ms và tốc độ truyền 100MB / s. Giả sử bạn cần tải 100 tệp shader với tổng kích thước 1MB. Nếu bạn phải thực hiện tìm kiếm cho từng cái, sẽ mất một giây để tải tất cả. Với một tìm kiếm duy nhất, bạn đang nhìn vào 20ms để tải tất cả chúng.
Tất nhiên, không phải tất cả các bàn giao tiếp đều có ổ cứng và ổ đĩa quang thậm chí còn có hiệu năng tìm kiếm kém hơn, vì vậy những bộ đổ bóng đó có thể mất 5 giây trở lên để tải xuống DVD khi tìm kiếm. Các bảng điều khiển cũng có bộ nhớ ít hơn để sử dụng làm bộ đệm so với PC, vì vậy chúng có xu hướng tải dữ liệu thường xuyên hơn.
Ngoài câu trả lời rất hay được đưa ra bởi Adam, tôi cũng muốn chỉ ra một số yếu tố quan trọng khác:
Càng có ít tệp bạn càng dễ triển khai ứng dụng của mình. Điều này đặc biệt đúng nếu bạn muốn triển khai ứng dụng của mình trên các nền tảng di động, như iOS, Android hoặc Windows Phone. Ngay cả trong trường hợp Windows Phone, bạn vẫn có thể có nhiều tệp như bạn muốn, vì các tệp XAP, được sử dụng để triển khai, chỉ là một kho lưu trữ zip, đó là
Có tất cả tài sản của bạn trong một tệp duy nhất đảm bảo rằng tất cả chúng được tải xuống / đọc "thành từng mảnh" . Nhiều game thủ sẽ bào chữa cho bạn một sự chậm trễ đáng chú ý để tải xuống tài sản hoặc giải nén chúng trước khi trò chơi bắt đầu, nhưng họ sẽ không nuông chiều miễn là họ phải đối mặt với những lần tạm dừng tinh tế trong trò chơi. Tất nhiên bạn có thể lưu trước bộ nhớ cache tài nguyên của mình vào RAM, nhưng tải chúng "theo mảnh" vẫn dễ dàng hơn cho mục đích này hơn là tải chúng trên cơ sở mỗi tệp.