Τις περισσότερες φορές, οι τιμές για το "Μέγεθος" και το "Μέγεθος στο δίσκο" θα είναι πολύ κοντά στην αντιστοίχιση κατά τον έλεγχο ενός μεγέθους φακέλου ή αρχείου, αλλά τι γίνεται αν υπάρχει τεράστια ασυμφωνία μεταξύ των δύο; Η σημερινή ανάρτηση ερωτηματολογίων SuperUser εξετάζει την απάντηση σε αυτό το μπερδεμένο πρόβλημα.
Η σημερινή συνεδρία Ερωτήσεων & Απαντήσεων μας προσφέρει ευγενική προσφορά του SuperUser - μια υποδιαίρεση του Stack Exchange, μιας ομάδας ιστότοπων Q&A που βασίζεται στην κοινότητα.
Το ερώτημα
Ο αναγνώστης SuperUser thelastblack θέλει να μάθει γιατί υπάρχει τόσο μεγάλη διαφορά μεταξύ «Μέγεθος» και «Μέγεθος σε δίσκο» για έναν φάκελο στην κάρτα SD του τηλεφώνου του:
Όπως μπορείτε να δείτε παρακάτω, υπάρχει τόσο μεγάλη διαφορά μεταξύ των πεδίων "Μέγεθος" και "Μέγεθος σε δίσκο" για αυτόν τον φάκελο. Γιατί αυτό?
![]()
Γνωρίζω ότι το "Μέγεθος στο δίσκο" πρέπει να είναι λίγο περισσότερο από το "Μέγεθος" λόγω των μονάδων εκχώρησης στα Windows, αλλά γιατί υπάρχει τόσο μεγάλη διαφορά; Θα μπορούσε να οφείλεται στον μεγάλο αριθμό αρχείων;
BTW, αυτός ο φάκελος βρίσκεται στην κάρτα SD του τηλεφώνου μου Android. Μέσα σε αυτό, η εφαρμογή χαρτών μου αποθηκεύει τους προσωρινά αποθηκευμένους χάρτες της και η εφαρμογή λαμβάνει τους χάρτες της από τους Χάρτες Google.
Κοιτάζοντας το στιγμιότυπο οθόνης, υπάρχει σίγουρα μια τεράστια απόκλιση μεταξύ «Μέγεθος» και «Μέγεθος σε δίσκο», οπότε τι συνέβη εδώ για να το προκαλέσει;
Η απάντηση
Ο συνεργάτης του SuperUser Bob έχει την απάντηση για εμάς:
Θα υποθέσω ότι χρησιμοποιείτε το σύστημα αρχείων FAT / FAT32 εδώ, αφού αναφέρετε ότι πρόκειται για κάρτα SD. Το NTFS και το exFAT συμπεριφέρονται παρόμοια όσον αφορά τις μονάδες κατανομής. Άλλα συστήματα αρχείων ενδέχεται να είναι διαφορετικά, αλλά ούτως ή άλλως δεν υποστηρίζονται στα Windows.
Εάν έχετε πολλά μικρά αρχεία, αυτό είναι σίγουρα δυνατό. Σκεφτείτε το:
- 50.000 αρχεία
- Μέγεθος συμπλέγματος 32 KB (μονάδες κατανομής), που είναι το μέγιστο για το FAT32
Εντάξει, τώρα το ελάχιστο ο απαιτούμενος χώρος είναι 50.000 * 32.000 = 1,6 GB (χρησιμοποιώντας προθέματα SI, όχι δυαδικά, για απλοποίηση των μαθηματικών). Ο χώρος που καταλαμβάνει κάθε αρχείο στο δίσκο είναι πάντα πολλαπλάσιο του μεγέθους της μονάδας εκχώρησης - και εδώ υποθέτουμε ότι κάθε αρχείο είναι στην πραγματικότητα αρκετά μικρό για να χωρέσει σε μία μονάδα, με λίγο (σπατάλη) χώρο.
Εάν κάθε αρχείο ήταν κατά μέσο όρο 2 KB, θα έχετε περίπου 100 MB συνολικά - αλλά σπαταλάτε επίσης κατά 15 φορές αυτό (30 KB ανά αρχείο) κατά μέσο όρο λόγω του μεγέθους της μονάδας κατανομής.
Επεξήγηση σε βάθος
Γιατί συμβαίνει αυτό; Λοιπόν, το σύστημα αρχείων FAT32 πρέπει να παρακολουθεί πού αποθηκεύεται κάθε αρχείο. Εάν επρόκειτο να διατηρηθεί μια λίστα με κάθε byte, ο πίνακας (όπως ένα βιβλίο διευθύνσεων) θα μεγαλώνει με την ίδια ταχύτητα με τα δεδομένα - και θα σπαταλήσει πολύ χώρο. Αυτό που κάνουν λοιπόν είναι να χρησιμοποιούν τις «μονάδες κατανομής», γνωστές και ως «μέγεθος συμπλέγματος». Ο τόμος χωρίζεται σε αυτές τις μονάδες κατανομής και, όσον αφορά το σύστημα αρχείων, δεν μπορούν να υποδιαιρεθούν - αυτά είναι τα μικρότερα μπλοκ που μπορεί να αντιμετωπίσει. Σαν να έχετε έναν αριθμό σπιτιού, αλλά ο ταχυδρόμος σας δεν ενδιαφέρεται πόσα υπνοδωμάτια έχετε ή ποιος μένει σε αυτά.
Τι συμβαίνει λοιπόν εάν έχετε ένα πολύ μικρό αρχείο; Λοιπόν, το σύστημα αρχείων δεν ενδιαφέρεται αν το αρχείο είναι 0 KB, 2 KB ή ακόμη και 15 KB, θα του δώσει τον ελάχιστο χώρο που μπορεί - στο παραπάνω παράδειγμα, δηλαδή 32 KB. Το αρχείο σας χρησιμοποιεί μόνο ένα μικρό μέρος αυτού του χώρου και το υπόλοιπο είναι βασικά σπατάλη, αλλά εξακολουθεί να ανήκει στο αρχείο - σαν ένα υπνοδωμάτιο που αφήνετε άδειο.
Γιατί υπάρχουν διαφορετικά μεγέθη μονάδων κατανομής; Λοιπόν, γίνεται μια ανταλλαγή μεταξύ ενός μεγαλύτερου τραπεζιού (βιβλίο διευθύνσεων, π.χ. λέγοντας ότι ο John κατέχει ένα σπίτι στις 123 Fake Street, 124 Fake Street, 666 Satan Lane κ.λπ.) ή περισσότερο σπατάλη χώρου σε κάθε μονάδα (σπίτι) . Εάν έχετε μεγαλύτερα αρχεία, είναι πιο λογικό να χρησιμοποιείτε μεγαλύτερες μονάδες εκχώρησης - επειδή ένα αρχείο δεν λαμβάνει νέα μονάδα (σπίτι) έως ότου γεμίσουν όλα τα άλλα. Αν έχετε πολλά μικρά αρχεία, λοιπόν, θα έχετε ένα μεγάλο τραπέζι (βιβλίο διευθύνσεων) ούτως ή άλλως, έτσι μπορείτε επίσης να τους δώσετε μικρές μονάδες (σπίτια).
Οι μεγάλες μονάδες κατανομής, κατά γενικό κανόνα, θα σπαταλήσουν πολύ χώρο εάν έχετε πολλά μικρά αρχεία. Συνήθως δεν υπάρχει καλός λόγος να υπερβείτε τα 4 KB για γενική χρήση.
Θρυμματισμός?
Όσον αφορά τον κατακερματισμό, ο κατακερματισμός δεν πρέπει να σπαταλά χώρο με αυτόν τον τρόπο. Τα μεγάλα αρχεία μπορεί να είναι κατακερματισμένα, δηλαδή χωρισμένα σε πολλαπλές μονάδες εκχώρησης, αλλά κάθε μονάδα πρέπει να συμπληρωθεί πριν ξεκινήσει η επόμενη. Η ανασυγκρότηση ενδέχεται να εξοικονομήσει λίγο χώρο στους πίνακες κατανομής, αλλά αυτό δεν είναι το συγκεκριμένο ζήτημά σας.
ΠΙΘΑΝΕΣ ΛΥΣΕΙΣ
Οπως και Προτείνεται το gladiator2345 , οι μόνες πραγματικές επιλογές σας σε αυτό το σημείο είναι να ζήσετε μαζί του ή να διαμορφώσετε εκ νέου με μικρότερες μονάδες κατανομής.
Η κάρτα σας ενδέχεται να έχει μορφοποίηση σε FAT16, το οποίο έχει μικρότερο όριο στο μέγεθος του τραπεζιού και επομένως απαιτεί πολύ μεγαλύτερες μονάδες κατανομής για να αντιμετωπίσει μεγαλύτερο όγκο (με ανώτερο όριο 2 GB με μονάδες εκχώρησης 32 KB). Πηγή παραχώρηση του Μπράιμ . Σε αυτήν την περίπτωση, θα πρέπει να μπορείτε να μορφοποιήσετε με ασφάλεια ως FAT32 ούτως ή άλλως.
Έχετε κάτι να προσθέσετε στην εξήγηση; Ήχος στα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange; Δείτε ολόκληρο το νήμα συζήτησης εδώ .