Tại sao có sự khác biệt lớn giữa 'Kích thước' và 'Kích thước trên đĩa'?
Hầu hết thời gian, các giá trị cho 'Kích cỡ' và 'Kích thước trên đĩa' sẽ rất gần khớp với khi kiểm tra kích thước thư mục hoặc tệp, nhưng nếu có sự khác biệt lớn giữa hai loại thì sao? Bài đăng Hỏi & Đáp của SuperUser hôm nay xem câu trả lời cho vấn đề khó hiểu này.
Phiên hỏi và trả lời hôm nay đến với chúng tôi nhờ sự hỗ trợ của SuperUser - một phân ngành của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều khiển.
Câu hỏi
Trình đọc SuperUser thelastblack muốn biết tại sao có sự khác biệt lớn như vậy giữa 'Kích cỡ' và 'Kích thước trên đĩa' cho một thư mục trên thẻ SD điện thoại của anh ấy:
Như bạn có thể thấy bên dưới, có rất nhiều sự khác biệt giữa các trường 'Kích cỡ' và 'Kích thước trên đĩa' cho thư mục này. Tại sao vậy?
Tôi biết rằng 'Kích thước trên đĩa' nên nhiều hơn một chút so với 'Kích thước' vì các đơn vị phân bổ trong Windows, nhưng tại sao lại có nhiều sự khác biệt? Có thể là do số lượng lớn các tập tin?
BTW, thư mục này nằm trong thẻ SD điện thoại Android của tôi. Bên trong này, ứng dụng bản đồ của tôi lưu trữ các bản đồ được lưu trong bộ nhớ cache và ứng dụng lấy bản đồ từ Google Maps.
Nhìn vào ảnh chụp màn hình, chắc chắn có sự khác biệt rất lớn giữa 'Kích cỡ' và 'Kích thước trên đĩa', vì vậy điều gì đã xảy ra ở đây để gây ra điều này?
Câu trả lời
Bob cộng tác viên SuperUser có câu trả lời cho chúng tôi:
Tôi sẽ giả sử rằng bạn đang sử dụng hệ thống tệp FAT / FAT32 ở đây, vì bạn đề cập đây là thẻ SD. NTFS và exFAT hoạt động tương tự đối với các đơn vị phân bổ. Các hệ thống tệp khác có thể khác, nhưng dù sao chúng cũng không được hỗ trợ trên Windows.
Nếu bạn có nhiều tệp nhỏ, điều này chắc chắn là có thể. Xem xét điều này:
- 50.000 tập tin
- Kích thước cụm 32 KB (đơn vị phân bổ), là mức tối đa cho FAT32
Được rồi, bây giờ tối thiểu dung lượng được lấy là 50.000 * 32.000 = 1.6 GB (sử dụng tiền tố SI, không phải nhị phân, để đơn giản hóa các phép toán). Dung lượng mà mỗi tệp chiếm trên đĩa luôn là bội số của kích thước đơn vị phân bổ - và ở đây chúng tôi giả sử mỗi tệp thực sự đủ nhỏ để vừa trong một đơn vị, còn lại một khoảng trống (bị lãng phí).
Nếu mỗi tệp trung bình 2 KB, bạn sẽ nhận được tổng cộng khoảng 100 MB - nhưng trung bình bạn cũng lãng phí 15 lần (30 KB cho mỗi tệp) do kích thước đơn vị phân bổ.
Giải thích chuyên sâu
Lý do tại sao điều này xảy ra? Chà, hệ thống tệp FAT32 cần theo dõi nơi lưu trữ từng tệp. Nếu phải giữ một danh sách từng byte, bảng (như sổ địa chỉ) sẽ phát triển với tốc độ tương đương với dữ liệu - và lãng phí rất nhiều dung lượng. Vì vậy, những gì họ làm là sử dụng các đơn vị phân bổ của Wap, hay còn gọi là kích thước cụm cụm. Âm lượng được chia thành các đơn vị phân bổ này và theo như hệ thống tệp có liên quan, chúng không thể được chia nhỏ - đó là các khối nhỏ nhất mà nó có thể xử lý. Giống như bạn có số nhà, nhưng người đưa thư của bạn không quan tâm bạn có bao nhiêu phòng ngủ hoặc người sống trong đó.
Vì vậy, những gì xảy ra nếu bạn có một tập tin rất nhỏ? Chà, hệ thống tệp không quan tâm nếu tệp là 0 KB, 2 KB hoặc thậm chí 15 KB, nó sẽ cung cấp cho nó ít không gian nhất có thể - trong ví dụ trên, đó là 32 KB. Tệp của bạn chỉ sử dụng một lượng nhỏ không gian này và phần còn lại về cơ bản bị lãng phí, nhưng vẫn thuộc về tệp - giống như một phòng ngủ bạn để lại không có người ở.
Tại sao có kích thước đơn vị phân bổ khác nhau? Chà, nó trở thành sự đánh đổi giữa việc có một cái bàn lớn hơn (sổ địa chỉ, ví dụ như John sở hữu một ngôi nhà ở 123 Fake Street, 124 Fake Street, 666 Satan Lane, v.v.) hoặc nhiều không gian lãng phí hơn trong mỗi đơn vị (nhà) . Nếu bạn có các tệp lớn hơn, sẽ hợp lý hơn khi sử dụng các đơn vị phân bổ lớn hơn - bởi vì một tệp không nhận được một đơn vị (nhà) mới cho đến khi tất cả các đơn vị khác được lấp đầy. Nếu bạn có nhiều tệp nhỏ, dù sao thì bạn cũng sẽ có một bảng lớn (sổ địa chỉ), vì vậy cũng có thể cung cấp cho họ các đơn vị nhỏ (nhà).
Các đơn vị phân bổ lớn, theo nguyên tắc chung, sẽ lãng phí rất nhiều dung lượng nếu bạn có nhiều tệp nhỏ. Thường không có lý do chính đáng để vượt quá 4 KB cho sử dụng chung.
Phân mảnh?
Đối với phân mảnh, phân mảnh không nên lãng phí không gian theo cách này. Các tệp lớn có thể bị phân mảnh, tức là tách ra, thành nhiều đơn vị phân bổ, nhưng mỗi đơn vị phải được điền trước khi bắt đầu kế tiếp. Chống phân mảnh có thể tiết kiệm một ít không gian trong các bảng phân bổ, nhưng đây không phải là vấn đề cụ thể của bạn.
Phương pháp khả thi
Như gladiator2345 đã đề xuất, các lựa chọn thực sự duy nhất của bạn tại thời điểm này là sống với nó hoặc định dạng lại với các đơn vị phân bổ nhỏ hơn.
Thẻ của bạn có thể được định dạng theo định dạng FAT16, có giới hạn nhỏ hơn về kích thước bảng và do đó yêu cầu các đơn vị phân bổ lớn hơn nhiều để giải quyết một khối lượng lớn hơn (với giới hạn trên là 2 GB với đơn vị phân bổ 32 KB). Nguồn lịch sự của Braiam. Nếu đó là trường hợp, bạn vẫn có thể định dạng an toàn là FAT32.
Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.