Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 4609|Απάντηση: 1

[Πηγή] .NET/C# Βελτιστοποίηση μνήμης αρχείων δίσκου ανάγνωσης ροής

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 9/6/2023 10:29:50 μ.μ. | | | |
Απαιτήσεις: Έγραψα πριν ότι η μορφή του αρχείου ελέγχεται από την κεφαλίδα του αρχείου, στην πραγματικότηταΧρειάζεται μόνο να διαβάσετε τα πρώτα byte του αρχείου για να κρίνετε και δεν χρειάζεται να διαβάσετε ολόκληρο το αρχείοΑυτό το άρθρο χρησιμοποιεί το Stream για να διαβάσει τα πρώτα byte ενός αρχείου δίσκου και να βελτιστοποιήσει το χώρο στη μνήμη, που είναι στην πραγματικότητα αυτό που είναιΔιαβάστε κατ' απαίτηση

Αναθεώρηση:

Μέγεθος αρχείου Byte σε μονάδες KB, MB, GB, TB έξυπνη μετατροπή
https://www.itsvse.com/thread-3062-1-1.html

.NET/C# Ανεβάζει αρχεία με βάση το byte[] στην κεφαλίδα του αρχείου
https://www.itsvse.com/thread-10594-1-1.html
χρήσηΑρχείο.ReadAllBytesΔιαβάζοντας ολόκληρο το αρχείο της εφαρμογής, μπορείτε να δείτε ότι το πρόγραμμα είναι πολύ απασχολημένο. Οπως φαίνεται παρακάτω:



Στην πραγματικότητα, χρειάζονται μόνο 2 byte για να διαβαστεί για να προσδιοριστεί εάν το αρχείο είναι εφαρμογή ή όχιΑναγνώστης ροήςΔιαβάστε τα πρώτα 2 byte του αρχείου όπως φαίνεται παρακάτω:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.



Μπορείτε να δείτε από την αρχική μνήμηΜειωμένη χρήση από 287.11 MB σε 20.55 MB(Χωρίς ανάγνωση του αρχείου, η προεπιλεγμένη μνήμη καταλαμβάνεται μετά την εκκίνηση του προγράμματος: 20,02 MB), γεγονός που δείχνει ότι εξοικονομούνται πολλά περιττά έξοδα μνήμης. Ο κωδικός έχει ως εξής:

Εάν θέλουμε να δούμε μόνο την αρχή του κειμένου, μπορούμε να χρησιμοποιήσουμε την εντολή more για να το προβάλουμε, πώς να χρησιμοποιήσουμε τον κώδικα .NET/C# για να διαβάσουμε το περιεχόμενο του κειμένου;

Διαβάζεται με δύο τρόπους και ο κώδικας έχει ως εξής:



Δεδομένου ότι αυτό το αρχείο είναι περιεχόμενο απλού κειμένου,Εάν είναι UTF-8 ή άλλη μορφή κωδικοποίησης, τα πρώτα byte του αρχείου πρέπει να αγνοηθούν, δηλαδή να οριστεί η θέση της ροής (π.χ. Θέση = 2)

(Τέλος)





Προηγούμενος:[MSSQL] Ο SQL SERVER παρήγγειλε GUID και μη ταξινομημένα GUID ως δοκιμές ευρετηρίου συνάθροισης πρωτεύοντος κλειδιού
Επόμενος:Διορατικότητα: Είδα την υπογραφή ενός blogger από τον κήπο του ιστολογίου
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 1/7/2023 9:13:08 μ.μ. |
Διαβάστε ολόκληρο το αρχείο txt

Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com