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

Άποψη: 3255|Απάντηση: 2

[Πηγή] .NET/C# Η υψηλή απόδοση συγχωνεύει πολλά αρχεία σε ένα μόνο αρχείο

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2024-2-14 12:04:26 | | | |
Απαιτήσεις: Όταν χρησιμοποιείτε μεγάλα αρχεία για μεταφόρτωση σε κομμάτια, το backend πρέπει να συγχωνεύσει διαφορετικά μπλοκ σε ένα μόνο αρχείο με τη σειρά ή όταν κόβετε το αρχείο αρχειοθέτησης, να συγχωνεύσετε τα κομμένα αρχεία στο αρχείο προέλευσης.

Το Linux χρησιμοποιεί διαχωρισμούς κοπής διαχωρισμένων αρχείων
https://www.itsvse.com/thread-10716-1-1.html

Αρχικά, προετοιμάστε δύο αρχεία 100M για δοκιμή, με την ακόλουθη εντολή:

Τα Windows δημιουργούν ένα αρχείο του καθορισμένου μεγέθους
https://www.itsvse.com/thread-10732-1-1.html

Ο κωδικός έχει ως εξής:


Δοκιμάστηκαν δύο διαφορετικά σενάρια συγχώνευσης. Οπως φαίνεται παρακάτω:



Ξεκινήστε τη δοκιμή με το VS 2022 debug -> Profiler -> επιλέξτε ".NET Object Allocation Trace":



Το συνολικό μέγεθος merge1 είναι: 16.778.034, το συνολικό μέγεθος merge2 είναι: 164.270,Η συνολική κατανομή δείχνει ότι η συγχώνευση1 είναι 102 φορές μεγαλύτερη από τη συγχώνευση2 και όσο μεγαλύτερη είναι, τόσο χειρότερη είναι η απόδοση

Χρησιμοποιήστε το PerfView για να προβάλετε ξεχωριστά την ανάλυση CPU Stacks και GC Heap Net Mem Stacks, όπως φαίνεται στην παρακάτω εικόνα:



Παρατήρηση:Συμπ% - Το συμπεριλαμβανόμενο κόστος εκφράζεται ως ποσοστό του συνολικού κόστους για όλα τα δείγματα(100% για κόμβους ROOT). Μπορεί να ταξινομηθεί από αυτό.





Προηγούμενος:Τα Windows δημιουργούν ένα αρχείο του καθορισμένου μεγέθους
Επόμενος:Εισαγωγή και διαφορά μεταξύ της μεταγλώττισης JIT και AOT στο .NET
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2024-2-14 12:09:30 |
Δοκιμή με VS 2022 Debug -> Performance Profiler -> επιλέξτε "Χρήση μνήμης":

  • Το merge1 καταλαμβάνει 808 MB όταν εκτελείται
  • Το merge2 καταλαμβάνει 12 MB όταν εκτελείται




Εάν η μέθοδος merge2 εκτελεστεί μόνη της, το πρόγραμμα ξεκινά 6MB και καταλαμβάνει πάντα 6MB κατά την εκτέλεση της συνάρτησης και μετά την ολοκλήρωση.
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 2025-1-1 10:20:06 |
Βελτιστοποιήστε το στυλ γραφής

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

Mail To:help@itsvse.com