Tại sao các tệp lớn tốt hơn các tệp nhỏ cho bảng điều khiển?


18

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ó lẽ một sự tương tự trong thế giới web: CSS Sprites
Nick T

CSS spites là một nhược điểm khó chịu của việc vẫn sử dụng HTTP 1.1 cũ kỹ đó, điều này rõ ràng khiến các máy chủ không thể gửi nhiều tài nguyên với một kết nối duy nhất. Tôi muốn cho một tiêu chuẩn mới.
Kos

1
@Kos mong muốn của bạn đã được cấp , mặc dù không may chưa thực hiện.
phihag

Cảm ơn vì điều đó! Tôi muốn nướng cho họ một chiếc bánh để họ làm việc nhanh hơn.
Kos

Câu trả lời:


37

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.


9
Câu trả lời rất hay. Đến thời điểm này, với các ví dụ về tìm kiếm một tệp so với nhiều tệp.
William Mariager

1
Ngoài ra, đối với các trò chơi trực tuyến cạnh tranh, nó nhanh hơn rất nhiều (và sử dụng ít dung lượng đĩa hơn) để xác minh rằng trình phát không bị giả mạo với một tệp lớn, hơn là xác thực hàng ngàn tệp nhỏ.
Trevor Powell

Từ khóa Google: hệ thống tệp ảo. Ngoài ra, nhu cầu rõ ràng đối với các hệ thống tệp virutal dường như chỉ ra rằng các hệ thống tệp không ảo có thể sử dụng thêm một số đánh bóng :(.
Kos

Tuy nhiên, điều này rất tệ cho những người trong chúng ta sử dụng SSD - chúng ta không thể di chuyển những thứ hiếm khi được tải vào ổ cứng, vì tất cả dữ liệu trò chơi nằm trong một tệp lớn. Nói cho WoW tôi chưa bao giờ đi Outland; Tôi chỉ cần di chuyển tập tin đó ra khỏi SSD. Không thể làm như vậy để nói ... CoD 4.
Mircea Chirea

6

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:

  1. 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à

  2. 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.


Tôi đã thực hiện phát triển Android và BlackBerry và không bao giờ gặp phải bất kỳ vấn đề nào khi có quá nhiều tệp nhỏ. Tuy nhiên, tôi không biết lợi ích của các tệp lớn hơn cho đến bây giờ ...
ADB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.