If-Koubou

Mengapa Ada Perbedaan Besar Antara 'Ukuran' dan 'Ukuran pada Disk'?

Mengapa Ada Perbedaan Besar Antara 'Ukuran' dan 'Ukuran pada Disk'? (Bagaimana caranya)

Sebagian besar waktu, nilai-nilai untuk 'Ukuran' dan 'Ukuran pada disk' akan sangat dekat dengan kecocokan saat memeriksa folder atau ukuran file, tetapi bagaimana jika ada perbedaan besar antara keduanya? Posting SuperUser Q & A hari ini melihat jawaban atas masalah membingungkan ini.

Sesi Tanya & Jawab hari ini hadir untuk memberi kami hak milik SuperUser-sub divisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.

Pertanyaan

Pembaca SuperUser thelastblack ingin tahu mengapa ada perbedaan besar antara 'Ukuran' dan 'Ukuran pada disk' untuk folder di kartu SD ponselnya:

Seperti yang Anda lihat di bawah ini, ada begitu banyak perbedaan antara bidang 'Ukuran' dan 'Ukuran pada disk' untuk folder ini. Mengapa demikian?

Saya tahu bahwa 'Ukuran pada disk' seharusnya sedikit lebih dari 'Ukuran' karena unit alokasi di Windows, tetapi mengapa ada banyak perbedaan? Mungkinkah karena banyaknya jumlah file?

BTW, folder ini ada di kartu SD ponsel Android saya. Di dalam ini, aplikasi peta saya menyimpan peta cachenya, dan aplikasi mendapatkan petanya dari Google Maps.

Melihat screenshot, pasti ada perbedaan besar antara 'Ukuran' dan 'Ukuran pada disk', jadi apa yang terjadi di sini untuk menyebabkan ini?

Jawabannya

Kontributor SuperUser, Bob memiliki jawabannya untuk kami:

Saya akan mengasumsikan bahwa Anda menggunakan sistem file FAT / FAT32 di sini, karena Anda menyebutkan ini adalah kartu SD. NTFS dan exFAT berperilaku serupa terkait dengan unit alokasi. Sistem file lain mungkin berbeda, tetapi mereka tidak didukung pada Windows.

Jika Anda memiliki banyak file kecil, ini tentu mungkin. Pertimbangkan ini:

  • 50.000 file
  • Ukuran cluster 32 KB (unit alokasi), yang merupakan max untuk FAT32

Ok, sekarang minimum ruang yang diambil adalah 50.000 * 32.000 = 1,6 GB (menggunakan awalan SI, bukan biner, untuk menyederhanakan matematika). Ruang setiap file mengambil pada disk selalu merupakan kelipatan dari ukuran unit alokasi - dan di sini kita mengasumsikan setiap file sebenarnya cukup kecil untuk muat dalam satu unit, dengan beberapa ruang yang tersisa (terbuang).

Jika setiap file rata-rata 2 KB, Anda akan mendapatkan sekitar 100 MB total - tetapi Anda juga membuang 15x itu (30 KB per file) rata-rata karena ukuran unit alokasi.

In-Depth Explanation

Mengapa ini terjadi? Nah, sistem file FAT32 perlu melacak di mana setiap file disimpan. Jika harus menyimpan daftar setiap byte tunggal, tabel (seperti buku alamat) akan tumbuh pada kecepatan yang sama dengan data - dan membuang banyak ruang. Jadi apa yang mereka lakukan adalah menggunakan "unit alokasi", juga dikenal sebagai "ukuran cluster". Volume dibagi menjadi unit alokasi ini, dan sejauh menyangkut sistem file, mereka tidak dapat dibagi lagi - mereka adalah blok terkecil yang dapat dialamatkan. Sama seperti Anda memiliki nomor rumah, tetapi tukang pos Anda tidak peduli berapa banyak kamar tidur yang Anda miliki atau yang tinggal di dalamnya.

Jadi apa yang terjadi jika Anda memiliki file yang sangat kecil? Nah, sistem file tidak peduli apakah file tersebut adalah 0 KB, 2 KB, atau bahkan 15 KB, itu akan memberikan ruang yang paling sedikit - dalam contoh di atas, itu 32 KB. File Anda hanya menggunakan sejumlah kecil ruang ini, dan sisanya pada dasarnya terbuang sia-sia, tetapi masih milik file - seperti kamar tidur yang Anda tinggalkan kosong.

Mengapa ada ukuran unit alokasi yang berbeda? Nah, itu menjadi trade-off antara memiliki meja yang lebih besar (buku alamat, misalnya mengatakan John memiliki rumah di 123 Fake Street, 124 Fake Street, 666 Satan Lane, dll.), Atau lebih banyak ruang terbuang di setiap unit (rumah) . Jika Anda memiliki file yang lebih besar, lebih masuk akal untuk menggunakan unit alokasi yang lebih besar - karena file tidak mendapatkan unit baru (rumah) sampai semua yang lain terisi. Jika Anda memiliki banyak file kecil, yah, Anda akan memiliki meja besar (buku alamat), jadi sebaiknya berikan juga unit kecil (rumah).

Unit alokasi besar, sebagai aturan umum, akan membuang banyak ruang jika Anda memiliki banyak file kecil. Biasanya tidak ada alasan yang bagus untuk menggunakan 4 KB untuk penggunaan umum.

Fragmentasi?

Adapun fragmentasi, fragmentasi tidak membuang-buang ruang dengan cara ini. File besar dapat dibagi-bagi, yaitu dibagi menjadi beberapa unit alokasi, tetapi setiap unit harus diisi sebelum yang berikutnya dimulai. Defragging mungkin menghemat sedikit ruang di tabel alokasi, tetapi ini bukan masalah khusus Anda.

Solusi yang memungkinkan

Sebagaimana disarankan oleh gladiator2345, satu-satunya pilihan Anda yang sesungguhnya pada saat ini adalah untuk hidup dengannya atau memformat ulang dengan unit alokasi yang lebih kecil.

Kartu Anda mungkin diformat dalam FAT16, yang memiliki batas lebih kecil pada ukuran tabel dan oleh karena itu memerlukan unit alokasi yang jauh lebih besar untuk mengatasi volume yang lebih besar (dengan batas atas 2 GB dengan unit alokasi 32 KB). Sumber milik Braiam. Jika itu kasusnya, Anda harus dapat dengan aman memformat sebagai FAT32 pula.

Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.