Why Collaborate Using Microsoft Teams? | Collaboration Kernel
Πίνακας περιεχομένων:
A Διαρροή μνήμης είναι μια κακή τοποθέτηση πόρων σε ένα πρόγραμμα υπολογιστή λόγω ελαττωματικής κατανομής μνήμης. Συμβαίνει όταν μια θέση RAM που δεν χρησιμοποιείται δεν παραμένει απεριόριστη. Μια διαρροή μνήμης δεν πρέπει να συγχέεται με διαρροή διαστήματος, η οποία αναφέρεται σε ένα πρόγραμμα που χρησιμοποιεί περισσότερη μνήμη RAM από ό, τι είναι απαραίτητο. Μια διαρροή μνήμης σε ένα σύστημα των Windows 10/8/7 λέγεται ότι έχει πραγματοποιηθεί όταν η μνήμη είναι απλά απρόσιτη παρά τη μη χρήση της.
Διαρροές μνήμης στα Windows 10
Πριν ξεκινήσετε, πρέπει να ξέρετε ότι Η διαρροή μνήμης είναι ένα ζήτημα λογισμικού που μπορεί να διορθωθεί - για παράδειγμα σε Java, JavaScript, C / C ++, Windows κ.λπ. Δεν απαιτείται φυσική αντικατάσταση μνήμης RAM ή σκληρού δίσκου.
Γιατί είναι κακό
η διαρροή είναι κακή επειδή είναι ένα σφάλμα, ένα ελάττωμα στο σύστημα. Ας δούμε όμως πώς ακριβώς επηρεάζει το σύστημα:
- Δεδομένου ότι η μνήμη δεν απελευθερώνεται ακόμη και όταν δεν χρησιμοποιείται, οδηγεί σε μείωση της μνήμης
- Εξάντληση της μνήμης έχει ως αποτέλεσμα τη γήρανση του λογισμικού
- Μειωμένη διαθέσιμη μνήμη οδηγεί σε αυξημένο χρόνο απόκρισης και χαμηλή απόδοση από το σύστημα
- Η ανεξέλεγκτη διαρροή μνήμης μπορεί τελικά να οδηγήσει σε συντριβή μιας εφαρμογής.
Προκειμένου να αναγνωριστεί διαρροή μνήμης, ένας προγραμματιστής πρέπει να έχει πρόσβαση στον πηγαίο κώδικα
Εντοπισμός της διαρροής
Προκειμένου να επιλυθεί ένα πρόβλημα, πρέπει να το εντοπίσουμε πρώτα. Τα βασικά βήματα για να εντοπίσετε μια διαρροή μνήμης είναι:
- Επιβεβαίωση : Καθορισμός αν έχει προκύψει διαρροή
- Εύρεση διαρροής μνήμης λειτουργίας πυρήνα : Εντοπισμός διαρροής που προκαλείται από ένα στοιχείο προγράμματος οδήγησης πυρήνα.
- Εύρεση διαρροής μνήμης κατάστασης χρήστη : Εντοπισμός διαρροής που προκαλείται από το πρόγραμμα οδήγησης ή την εφαρμογή χρήστη
Κατανομή μνήμης
Υπάρχουν διαφορετικοί τρόποι με τους οποίους οι εφαρμογές εκχωρούν μνήμη RAM. Αν ο χώρος δεν ελευθερωθεί μετά τη χρήση, η διαρροή μνήμης θα συμβεί ανεξάρτητα από τον τρόπο κατανομής. Ορισμένα κοινά μοτίβα κατανομής είναι:
- Λειτουργία HealAlloc για κατανομή μνήμης σωρού. Τα ισοδύναμα χρόνου εκτέλεσης C / C ++ είναι malloc και νέα.
- Λειτουργία VirtualAlloc για άμεση κατανομή από το λειτουργικό σύστημα.
- Kernel32 API για τη διατήρηση της μνήμης του πυρήνα για την εφαρμογή. Παραδείγματα, CreateFile, CreateThread
- APIs του User32 και APIs Gdi32
Αποτροπή διαρροών μνήμης
Όλοι γνωρίζουμε ότι η πρόληψη είναι καλύτερη από τη θεραπεία, έτσι υπάρχουν ορισμένοι τρόποι για να αποφευχθεί η διαρροή μνήμης. > Πρέπει να παρακολουθείτε για τη μη κανονική χρήση της μνήμης RAM από μεμονωμένα προγράμματα και εφαρμογές. Μπορείτε να μεταβείτε στη Διαχείριση εργασιών των Windows πατώντας
CTRL + SHIFT + ESC
και προσθέτοντας τις στήλες όπως τα Λαβές, τα Αντικείμενα Χρήστη, τα αντικείμενα GDI κ.λπ. Τα εργαλεία της Microsoft για τη διάγνωση διαρροών μνήμης Διαφορετικά εργαλεία διαγιγνώσκουν διαρροές μνήμης για διάφορους τρόπους κατανομής:
Ο διαχειριστής εφαρμογής διαγνωρίζει διαρροές σωρού.
Το UMDH (ένα στοιχείο των εργαλείων εντοπισμού σφαλμάτων των Windows) διακρίνει διαρροές για μεμονωμένες διαδικασίες παρακολουθώντας κατανομές μνήμης σωρού.
Το Trap Capture για μια λεπτομερή ανάλυση της χρήσης RAM
- Το Xperf παρακολουθεί επίσης τα μοτίβα κατανομής σωρών.
- Το CRT Debug Heap όχι μόνο παρακολουθεί τις κατανομές σωρών αλλά και επιτρέπει πρακτικές κωδικοποίησης για την ελαχιστοποίηση των διαρροών. Ο εντοπισμός εντοπίζει διαρροές μνήμης σε κώδικες
- Συμβουλές Χρήσης
- Χρήση πυρήνα
- HANDLE
- s και άλλοι έξυπνοι δείκτες για πόρους Win32 και κατανομές σωρών. τη βιβλιοθήκη ATL. Το πρότυπο C ++ έχει
auto_ptr
- για κατανομές σωρών. Ενσωματώνουν δείκτες διεπαφής COM μέσα σε "έξυπνους δείκτες" με τη βοήθεια _com_ptr_t
- ή _bstr_t ή
- _variant_tΠαρακολούθηση του κώδικα.NET για μη φυσιολογική χρήση μνήμης Αποφυγή πολλαπλών διαδρομών εξόδου για λειτουργίες που επιτρέπουν την απαλλαγή των κατανομών από μεταβλητές στα περισσότερα μπλοκ μέχρι το τέλος μιας λειτουργίας. μετά την απελευθέρωση όλων των κατανομών στο τελικό μπλοκ. Τυλίξτε όλα τα σωρεύματα και τη διαχείριση των κατανομών σε έξυπνες δείκτες για να χρησιμοποιήσετε εξαιρέσεις C ++. Πάντα να καλέσετε τη λειτουργία PropVariantClear πριν επανεγκαταστήσετε ή απορρίψετε ένα αντικείμενο PROPVARIANT
- Αντιμετώπιση διαρροών μνήμης στα Windows
- Ακριβώς όπως και οι διάφοροι τρόποι αποφυγής διαρροών μνήμης, υπάρχουν διάφοροι τρόποι για να σταματήσετε διαρροές μνήμης.
- 1] Κλείστε τις διαδικασίες και κάντε επανεκκίνηση.
- Αν δείτε ότι μια περιττή διαδικασία αναλαμβάνει υπερβολική μνήμη RAM, μπορείτε να τερματίσετε τη διαδικασία στο Task Manager. Θα χρειαστεί να κάνετε επανεκκίνηση της συσκευής έτσι ώστε ο ελεύθερος χώρος να είναι διαθέσιμος για χρήση από άλλες διαδικασίες. Χωρίς επανεκκίνηση η διαρροή μνήμης δεν θα λυθεί. Μια συγκεκριμένη διαδικασία που έχει σφάλματα για να επιβραδύνει το PC είναι Runtime Broker. Δοκιμάστε αν η απενεργοποίηση αυτή λειτουργεί μόνο. 2] Εργαλεία διάγνωσης μνήμης Για να αποκτήσετε πρόσβαση στο ενσωματωμένο διαγνωστικό εργαλείο μνήμης για τα Windows:
για να ανοίξετε το παράθυρο
Run
.
Πληκτρολογήστε την εντολή
mdsched.exe
στο παράθυρο
- Run
- κάντε επανεκκίνηση, εκτελέστε μια βασική σάρωση ή μεταβείτε στις επιλογές Για προχωρημένους `όπως` Δοκιμή `ή`
- F9 για να ξεκινήσετε τη δοκιμή Αυτές εξακολουθούν να είναι προσωρινές επιδιορθώσεις 3] Έλεγχος για ενημερώσεις προγραμμάτων οδήγησης Τα ξεπερασμένα προγράμματα οδήγησης προκαλούν διαρροές μνήμης. Κρατήστε όλα τα προγράμματα οδήγησης ενημερωμένα:
- Πατήστε
- Win + R και ανοίξτε το παράθυρο Run . Πληκτρολογήστε devmgmt.msc και πατήστε Enter. Για ενημερώσεις που ενδεχομένως έχετε χάσει, ανατρέξτε στο Windows Update
- Αυτό ήταν απλό.
4] Βελτιστοποίηση της απόδοσης
- Η ρύθμιση των Windows για απόδοση θα διαχειριστεί τα πάντα, συμπεριλαμβανομένου του προγραμματισμού επεξεργαστών και της χρήσης της μνήμης για να σταματήσει η διαρροή μνήμης. Ακολουθήστε αυτά τα βήματα: Κάντε δεξί κλικ στο Αυτό το PC `και επιλέξτε` Advanced `στο αριστερό παράθυρο. > Ρυθμίστε για την καλύτερη απόδοση και κάντε κλικ στο OK
- Κάντε επανεκκίνηση και ελέγξτε αν το πρόβλημα επιλύθηκε
Εάν αυτή η απλή λύση δεν λειτούργησε, δοκιμάστε την επόμενη λύση
5 Απενεργοποίηση προγραμμάτων που εκτελούνται κατά την εκκίνηση
Η απενεργοποίηση των ενοχλητικών προγραμμάτων είναι ο μόνος τρόπος για να απαλλαγείτε από το πρόβλημα διαρροής μνήμης. Μεταβείτε στη Διαχείριση εργασιών και απενεργοποιήστε το πρόγραμμα ταραχών. Εάν δεν ξέρετε ποια προγράμματα δημιουργούν το πρόβλημα, κάντε τα παρακάτω:
- Μεταβείτε στο Διαχείριση εργασιών `. Μεταβείτε στο Απενεργοποίηση των προγραμμάτων εκκίνησης που δεν χρειάζεστε να εκτελούνται από προεπιλογή
- 6 Defrag Hard Drive Παρόλο που τα Windows 10 το κάνουν αυτόματα για εσάς, ίσως χρειαστεί να κάνετε defragging τους σκληρούς δίσκους περιστασιακά για να βελτιστοποιήσετε την απόδοση: Πηγαίνετε στο ` Αυτό το PC ` ή ` Ο Υπολογιστής μου `.
- Κάντε δεξί κλικ στο σκληρό δίσκο του συστήματος. > `και επιλέξτε` Βελτιστοποιήστε
- `.
> Επανεκκινήστε τον υπολογιστή σας μετά τον νέο κατακερματισμό.
7] Αρχείο ClearPage κατά τον τερματισμό λειτουργίας
Είναι πλέον πολύπλοκο τώρα - αλλά μην ανησυχείτε. Εδώ είναι πώς μπορείτε να εκκαθαρίσετε το αρχείο σελίδας σε κάθε τερματισμός:
- πληκτρολογήστε regedit στην αναζήτηση για να εκκινήσετε τον Επεξεργαστή Μητρώου.
- Εισάγετε αυτήν τη διαδρομή: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagementMedia Management
- Απενεργοποίηση Superfetch
Αυτή η υπηρεσία Windows βελτιστοποιεί την απόδοση ελαχιστοποιώντας τον χρόνο εκκίνησης.
ClearPageFileAtShutDown σε `1`.
- Αποθήκευση των αλλαγών και Επανεκκίνηση της συσκευής. Επιτρέπει στα Windows να διαχειρίζονται τη χρήση της μνήμης RAM. Η ζωή μετά την απενεργοποίηση του Superfetch δεν είναι βολική, αλλά το κάνετε εάν πρέπει. Δοκιμάστε τουλάχιστον αυτό μόνο για να απομονώσετε το πρόβλημα: Αναζήτηση services.msc και πηγαίνετε στο Service Manager. Αναζητήστε `
- Superfetch
- ` και κάντε δεξί κλικ σε Ιδιότητες `. Επιλέξτε` Διακοπή `. Επανεκκινήστε τον υπολογιστή και ελέγξτε αν η απόδοση έχει βελτιωθεί
- Ενεργοποιήστε το Superfetch αν αυτό δεν λειτούργησε 10] Έλεγχος για κακόβουλο λογισμικό Χρησιμοποιήστε λογισμικό προστασίας από ιούς τρίτων κατασκευαστών ή Windows Defender του Windows 10 για την ανίχνευση και την εξάλειψη κακόβουλου λογισμικού. Βεβαιωθείτε ότι το antivirus ενημερώθηκε για να υποστηρίξει το λειτουργικό σας σύστημα έτσι ώστε να μην καταλήξει να είναι ο λόγος για τη διαρροή μνήμης.
Κάθε λύση που ίσως χρειαστεί ποτέ να βρείτε ή να αποτρέψετε διαρροές μνήμης είναι εδώ. Μπορείτε να διαβάσετε περισσότερα σχετικά με διαρροές μνήμης στο MSDN και τη Microsoft
Αφήστε το στη Sony για να αποδείξει ότι μερικές φορές το καλύτερο πραγματικά έρχεται τελευταία. Το μονοπάτι που βρισκόταν στη σκηνή μόνο για να παραμεριστεί από μια τιτανική οθόνη 40 με 80 πόδια, ο πρόεδρος της Sony Jack Tretton δεν έχασε χρόνο να γελάσει για διαρροές τύπου προ-εμφάνισης. «Θεωρούμε τους εαυτούς μας ως ηγέτες της βιομηχανίας και η Sony οδηγεί τον κόσμο σε διαρροές τύπου», δήλωσε ο Tretton, ο οποίος έθεσε τον τόνο για την παρουσίαση - "Μόνο στο PlayStation 3" - δηλώνοντα
Κατανομή φυσικής μνήμης και κατάσταση μνήμης στα Windows 7
Τα Windows 7 αναφέρουν πόση φυσική μνήμη είναι εγκατεστημένη στον υπολογιστή σας μαζί με τη μνήμη διαθέσιμες στο λειτουργικό σύστημα και στην αποθηκευμένη μνήμη του υλικού
Ανακατασκευή προσωρινής μνήμης εικονιδίων, Εκκαθάριση προσωρινής μνήμης μικρογραφιών στα Windows 10
Διαγραφή αρχείων IconCache.db & ThumbCache.db από τη θέση του φακέλου για την επαναδημιουργία της προσωρινής μνήμης εικονιδίων και την εκκαθάριση της προσωρινής μνήμης μικρογραφιών στα Windows 10.