Απαιτήσεις: Το HTTP προσθέτει τώρα έναν αλγόριθμο συμπίεσης Brotli για τη δοκιμή αλγορίθμων Gzip και Brotli. Ανάλογα με το έργο, μόνο η ταχύτητα αποσυμπίεσης ελέγχεται στο άρθρο.
Ο Μπρότλι έχει12 επίπεδα συμπίεσης, από 0 έως 11, όπου το 0 παρέχει την ταχύτερη ταχύτητα συμπίεσης αλλά τη χαμηλότερη αναλογία συμπίεσης, ενώ το 11 παρέχει την υψηλότερη αναλογία συμπίεσης αλλά απαιτεί περισσότερους υπολογιστικούς πόρους και χρόνο. Όταν εφαρμόσαμε για πρώτη φορά το Brotli πριν από 5 χρόνια, διαπιστώσαμε ότι η συμπίεση 4 επιπέδων παρείχε μια ισορροπία εξοικονόμησης byte και χρόνου συμπίεσης χωρίς συμβιβασμούς στην απόδοση. Όσο υψηλότερο είναι το επίπεδο συμπίεσης, τόσο μικρότερο είναι το αποτύπωμα, αλλά πουλάει περισσότερους πόρους CPU και μνήμης.
ASP.NET αλγόριθμος Brotli είναι ήδη ενσωματωμένος στον πυρήνα και δεν απαιτεί αναφορά σε πακέτα τρίτων. (Αυτό το άρθρο θα αναφέρεται στο πακέτο τρίτου κατασκευαστή: BrotliSharpLib και το ενσωματωμένο για σύγκριση), η διαμόρφωση έχει ως εξής:
ASP.NET Ροή κλήσης συμπίεσης Core Brotli: ResponseCompressionServicesExtensions -> AddResponseCompression -> ResponseCompressionProvider -> BrotliCompressionProvider -> BrotliStream.
Ο κωδικός απαρίθμησης του επιπέδου συμπίεσης έχει ως εξής:
Δημιουργήστε ένα νέο έργο κονσόλας .NET 6 με τον ακόλουθο κώδικα συγκριτικής αξιολόγησης:
Τα αποτελέσματα των δοκιμών είναι τα εξής:
Δοκίμασα ένα αρχείο 503 kb και μετά τη συμπίεση, δεν υπήρχε μεγάλη διαφορά, γύρω στα 400 kb, και αποδείχθηκε ότι η ταχύτητα αποσυμπίεσης του Gzip ήταν ακόμα μεγαλύτερη από αυτή του Brotli, η οποία θα έπρεπε να είναι η ίδιαμέγεθος αρχείου, . Έκδοση NET, επίπεδο συμπίεσης, περιεχόμενο αρχείου κ.λπΜε λίγα λόγια, είναι καλύτερο να επιλέξετε τη σκηνή που σας ταιριάζει.
Εάν αντιμετωπίσετε ένα σφάλμα όπως αυτό:
Περιβάλλον Περίληψη -> Εντοπίστηκε κωδικός εξόδου σφάλματος από ένα από τα σημεία αναφοράς. Μπορεί να προκαλείται από το ακόλουθο λογισμικό προστασίας από ιούς: - 360 SafeGuard (C:\Program Files (x86)\360\360Safe\safemon\360tray.exe) - Ο Windows Defender (windowsdefender://) Χρησιμοποιήστε το InProcessEmitToolchain ή το InProcessNoEmitToolchain για να αποφύγετε τη δημιουργία νέων διεργασιών. λύση
ή
(Τέλος)
|