Γιατί υπάρχει μεγάλη διαφορά μεταξύ του μεγέθους και του μεγέθους στο δίσκο;
Τις περισσότερες φορές, οι τιμές για το "Μέγεθος" και το "Μέγεθος στο δίσκο" θα είναι πολύ κοντά στην αντιστοίχιση κατά τον έλεγχο ενός μεγέθους φακέλου ή αρχείου, αλλά τι γίνεται αν υπάρχει τεράστια διαφορά μεταξύ των δύο; Η σημερινή θέση Q & A της SuperUser εξετάζει την απάντηση σε αυτό το συγκεχυμένο πρόβλημα.
Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με το SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα που κατευθύνεται από τους ιστότοπους ερωτήσεων & απαντήσεων.
Το ερώτημα
Ο αναγνώστης 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). Πηγή ευγένεια του Braiam. Εάν συμβαίνει αυτό, θα πρέπει να είστε σε θέση να μορφοποιήσετε με ασφάλεια ως FAT32 ούτως ή άλλως.
Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.