Προς το περιεχόμενο

Περί της Registry των windows Xp


karib

Προτεινόμενες αναρτήσεις

  • Απαντ. 56
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

Το μέγεθος του registry έχει επιπτώσεις στην ταχύτητα του υπολογιστή. Όσο μεγαλύτερο είναι, τόσο περισσότερα κλειδιά υπάρχουν, και συνεπώς αργεί περισσότερο το φόρτωμα και η εκτέλεση προγραμμάτων που χρειάζονται πληροφορίες από εκεί.

 

Το πιό βαρύ πρόγραμμα που είχα βάλει ποτέ στον υπολογιστή μου όσον αφορά το μέγεθος του registry, είναι οι drivers της audigy. Με το που τους εγκατέστησα ανέβηκε το μέγεθός του 15-20ΜΒ. Ελπίζω να το έχουν περιορίσει πλέον.

Δημοσ.

Αν στη Registry υπάρχουν οσο το δυνατόν μη περριτά κλειδιά, δηλαδή κλειδιά (καταχωρήσεις) από απεγκατεστημένα προγράμματα, τοτε ο υπολογιστής θα τρέχει πιο smoothly (=ομαλά).

 

Βέβαια, το παραπάνω ισχύει αν οι απαιτήσεις σε μνήμη RAM είναι υπαρκτές. Συγκεκριμένα, αν η RAM καλύπτει τα ζητούμενα resources τότε ο υπολογιστής (μιλάω γενικά) θα είναι ικανός να προσαρμοστεί, μεχρι το overdose.

 

:arrow: Θα δώσω ενα παράδειγμα:

 

Άν στον υπολογιστή έχουμε εγκαταστήσει δέκα προγράμματα (μετά από μια καθαρή εγκατάσταση των Windows) και τα πέντε (δηλ. το 50%) είναι στην Startup List, τότε το λειτουργικό όταν ξεκινάει θα ξεκινάν και τα προγράμματα τα οποία ήταν στη Startup List. Λογικά.

Επίσης ας πούμε ότι το 1ο καταλαμβάνει στην μνήμη 2MB, το 2o > 3MB, το 3ο > 4MB, το 4ο > 10MB και το 5ο > 20ΜΒ, συνολικά μόνο και μόνο απο την εκκίνηση τους 39ΜΒ.

 

Κατα την λειτουργία του υπολογιστή οι εφαρμογές αυξάνουν τις απαιτήσεις απο RAM διότι το ένα μπορεί να θέλει να κάνει update τα definitions του (antivirus - Live Update) ή να ξεκινήσει η αναζητηση για ιούς (Anti-Virus Live Monitor). Κατα την διάρκεια των εργασιών αυτών η Registry παίζει σημαντικό ρόλο, διότι αποθηκεύονται ή γίνονται edit αρκετές εκατοντάδες κλειδιά. Συνολικά μπορεί να μαζευτεί μνήμη πάνω από 60ΜΒ από αυτά τα 5 προγράμματα.

 

Το σύστημα για να "συνεργαστεί" με τη Registry, θα χρειαστεί να ανοίξει διάφορα αρχεία (π.χ. SAM, SOFTWARE, SYSTEM, DEFAULT, USERxxx, ADMINxxx, SECURITY για να πάρει privileges, user info, user rights, passwords, info for software και άλλα πολλά!).

Άν αυτά τα αρχεία (backup as .log) έχουν αρκετά περιττά στοιχεία και μεγάλο μέγεθος, τότε το πρόγραμμα που θα αναζητήσει πληροφορίες μέσα από αυτά, θα αργήσει να αποδεσμεύσει την μνήμη που είχε χρειαστεί για να κάνει τις διεργασίες που ήθελε στο σύστημα.

 

:arrow: Σύμβουλές:

Εγώ για να διαχειριστώ μεγάλου μεγέθους REGISTRY, όπως αυτή που έχω "ΜΒytes>200" έχω και μεγάλο ποσό μνήμης RAM (περίπου 3GB).

Βέβαια με την χρήση των εργαλείων, που διατύπωσα σε άλλο post, διευκολύνεται η κατάσταση και το σύστημα αποφεύγει crashes,overdoses και άλλα παρόμοια προβλήματα!

 

Η μεγαλύτερη μαγκειά είναι να έχεις το σύστημα σου τακτοποιημένο!

 

Τ Α Κ Τ Ο Π Ο Ι Η Μ Ε Ν Ο

 

.. :D

Δημοσ.
Το μέγεθος του registry έχει επιπτώσεις στην ταχύτητα του υπολογιστή. Όσο μεγαλύτερο είναι, τόσο περισσότερα κλειδιά υπάρχουν, και συνεπώς αργεί περισσότερο το φόρτωμα και η εκτέλεση προγραμμάτων που χρειάζονται πληροφορίες από εκεί.

 

Απαντάω ταυτόχρονα και στον MrTryANalyzer. Αυτά που λέτε είναι σωστά αλλά μόνο εν μέρη. Αν ανοίξω το Χ software, τότε αυτό κατά κανόνα θα ψάξει μόνο τα keys του Χ software. Αν έχω 10000 ακόμα keys στο registry, το Χ software θα διαβάσει τον ίδιο αριθμό από keys και θα ανοίξει στον ίδιο χρόνο. Η registry δεν «ανοίγει» και «κλείνει» αλλά μένει μόνιμα «ανοιχτή». Η διαφορά χρόνου όσον αφορά την αναζήτηση ακόμα και για μερικές εκατοντάδες keys παραπάνω είναι κατά προσέγγιση η ίδια. Άρα μη το γενικεύετε: περισσότερα keys δεν σημαίνει αναγκαστικά λιγότερη ταχύτητα. Μεγαλύτερη registry δεν σημαίνει αναγκαστικά μεγαλύτερη καθυστέρηση, γιατί η registry είναι «κάτι σαν μία» συσχετιστική βάση δεδομένων.

 

«Μεγαλύτερο registry» επομένως μπορεί να οφείλεται σε επιπρόσθετο software το οποίο δεν έχει απεγκατασταθεί. Το software αυτό μπορεί να έχει processes/services που τρέχουν συνεχώς οπότε τότε το σύστημα θα τρέχει πιο αργά ή λιγότερο «smoothly».

 

«Μεγαλύτερο registry» μπορεί όμως να οφείλεται σε επιπρόσθετο software το οποίο έχει απεγκατασταθεί και δεν έχει αφαιρέσει τα keys του. Μπορεί αυτά τα keys να μην ανήκουν στο startup των windows και σε άλλα κρίσιμα σημεία και άρα μπορεί τα keys απλά να καταλαμβάνουν χώρο και να μην επιβραδύνουν το σύστημα καθόλου άρα το σύστημα να τρέχει το ίδιο «smoothly».

 

«Μεγαλύτερο registry» μπορεί επίσης να οφείλεται σε επιπλέον users και profiles, οπότε τότε το σύστημα δεν τρέχει πιο αργά, γιατί κάθε user διαβάζει «το δικό του» τμήμα του registry και το σύστημα δεν «γνωρίζει» καν την ύπαρξη των υπόλοιπων τμημάτων. Άρα... σε multiuser pc μπορεί να δείτε 100ΜΒ registry και το σύστημα να πετάει... δηλαδή μεγαλύτερο registry μπορεί να σημαίνει λιγότερες επιδόσεις, μπορεί και όχι.

 

Και για τους άπιστους.. Φτιάξτε ένα script που να προσθέτει dummy keys στο κλασικό HKLM\software. Προσθέστε 10.000 dummy keys και αν δείτε διαφορά ελάτε να το συζητήσουμε ;-)

Δημοσ.

Θα ήθελα να κάνω μια διευκρίνηση στον GothicCrusader :

 

Όσο μεγαλύτερο είναι το μέγεθος της Registry, τόσο μεγαλύτερη διάρκεια χρόνου, χρειάζεται ο υπολογιστής να την επεξεργαστεί (όχι φορτώσει) στην μνήμη του. Αυτό έχει σαν συνέπεια πολλά από τα προγράμματα να χρησιμοποιούν λιγότερη Virtual Memory.

 

Αυτο μπορεί να μη το καταλαβαίνει κανείς, άν εχει μηχάνημα "τελευταίας τεχνολογίας" ή μεγάλη μνήμη.

 

> Εδώ μιλάμε γενικά και όχι ειδικά ..

 

Άν το X software που λέει ο GothicCrusader δημιουργήσει 10000 keys στη Registry (όπως η εγκατάσταση του Office 2003) τότε στα αρχεία SAM και USER θα αυξηθεί το μέγεθος τους. Έχει παρατηρήσει κανείς μετά από μια τέτοια εγκατάσταση σε ένα σύστημα Celeron 2.0GHz καμία διαφορά στις επιδόσεις ? Λογικά ναι..

 

Μέσα στη Registry (ας μιλήσω πιο γενικά) δημιουργούνται CLSID's τα οποία είναι (πιο ειδικά) οι unique ταυτότητες για αντικείμενα (objects) COM, όπως DLL's ή OCX's κ.α. Αυτά δημιουργούνται για να μπορεί το κάθε πρόγραμμα να καλεί τα επισυναπτόμενα COM's.

 

Στην περίπτωση της εγκατάστασης π.χ. του Office 2003 δημιουργούνται εκατοντάδες τέτοια keys και άλλα 6πλάσια από τα πρώτα για ρυθμίσεις, MRU (π.χ. Open History) κ.α.

 

Φανταστείτε δέκα προγράμματα, μαζί με τα Services (XP), να προσπαθούν να καλούν με χαοτικό τρόπο τις ρύθμίσεις τους, calls για τα απαιτούμενα DLL's, OCX's ... XAOΣ!

Aυτό συμβαίνει κάθε δέκατο του δευτερολέπτου στον υπολογιστή.

Οπότε άν το μέγεθος της Registry είναι μεγάλο, και οι απαιτήσεις του κάθε προγράμματος αυξάνονται το σύστημα επιβραδύνεται (σε ακραίες περιπτώσεις ή για συστήματα με μικρή μνήμη).

 

:arrow: Παράδειγμα :

Φανταστείτε μια τεράστια βιβλιοθήκη με ιεραρχική δομή. Κάποια στιγμή μπαίνει ένα άτομο μέσα και πάει στη γραμματέα/βιβλιοθηκάριο (όπως λέγεται...). Αυτή μπροστά της έχει έναν υπολογιστή με ενα πρόγραμμα με τις θέσεις του κάθε βιβλίου στη βιβλιοθήκη (κωδικοποιημένες με την μορφή Α1,D13,X5,Z9 κλπ). Η database του προγράμματος είναι αρκετά μεγάλη (σε GBytes). Επομένως όπως λογικά σύμβαίνει η αναζήτηση μιας θέσης ενός βιβλίου (και αρκετές πληροφορίες για αυτό) θα πάρει κάποια ώρα (σε seconds αν μιλάμε για HITECH σύστημα!). Αυτή η απόκριση δημιουργείται εξαιτείας ενος μη 100% βελτιστοποιημένου αλγόριθμου και στο μέγεθος της DATABASE.

H Registry είναι και αυτή μια database... Σκεφτείτε, και θα βρείτε το clue (συμπέρασμα) της υπόθεσης !

 

Επίσης τα προγράμματα που επονομάζονται Registry Cleaners, επαναφέρουν από 3% - 9% χαμένη μνήμη (ανάλογα με τη χρήση του υπολογιστή, ποσους μήνες είναι εγκατεστημένο το λειτουργικό, τα προγράμματα που χρησιμοποιούνται κ.α.). Μη φανταστείτε ότι σε clean installed σύστημα 2 εβδομάδων, με τη χρήση ενος τέτοιου προγράμματος, θα δείτε διαφορά στις επιδόσεις !

Επίσης, το μόνο 99% επικυρωμένο πλεονέκτημα των προγραμμάτων Reg Cleaners είναι ότι βοηθάνε στο να μην δημιουργηθούν προβλήματα στο σύστημα (crashes κ.α.). Βέβαια όλη η δουλειά δεν ολοκληρώνεται μόνο απο τα προγράμματα άλλα και από το υπόλοιπο 1% .. το μυαλό σας!

Πρέπει και σεις να συμβάλλεται στο καθαρισμό της Registry, όχι μόνο πατώντας το πλήκτρο "Enter"->"Clean", αλλα με το να θυμάστε τι προγράμματα έχετε εγκαταστήσει στον υπολογιστή σας, και τη προσεκτικη ανάλυση (όση ώρα να πάρει).

Τίποτα δεν είναι 100% αυτοματοποιημένο σε αυτή τη ζωή .. !

 

 

Για να δούμε τώρα και πιο πειστικά άρθρα :

 

:arrow: Microsoft - Inside the Registry

 

 

Mark Russinovich holds a Ph.D. in computer engineering from Carnegie Mellon University. He is coauthor of many popular utilities for Windows NT, including NTFSDOS, Filemon, Regmon, and Recover. You can reach him at http://www.sysinternals.com.

 

PERFOMANCE TOOLS -> PageDefrag v2.3

 

 

:arrow: Pet Peeve #2 - TheWindows 95 System Registry

 

 

 

Υπ.

Τα 10000 κλειδιά θα είναι άδεια? ΠΡΟΣ GothicCrusader :roll:

 

.. :D

Δημοσ.

όχι, το νιώθω κ θα το γράψω:

κάτι τέτοια τόπικ διαβάζω στο ινσομια κ το θεωρώ το κορυφαίο τεχνολογικό σάιτ στην ελλάδα

και τύφλα να έχουν και όλα τα περιοδικά του χώρου.

 

:)

  • Moderators
Δημοσ.

Ενα ενδιαφερον utility

RegShot is a small registry compare utility that allows you to quickly take a snapshot of your registry and then compare it with a second one - done after doing system changes or installing a new software product. The changes report can be produced in text or HTML format and contains a list of all modifications that have taken place between snapshot1 and snapshot2.In addition, you can also specify folders (with sub filders) to be scanned for changes as well.In version 1.60+ you can save your whole registry in a *.hiv file for future use.

here

Δημοσ.

MrTryANalyzer,

 

Σχετικά με τα «άδεια» registry keys δεν καταλαβαίνω την απορία σου. Με τον όρο άδεια εννοώ keys χωρίς subkeys και χωρίς defined values. Είτε με api, είτε με wsh είτε με όποιο άλλο τρόπο θες μπορείς να φτιάξεις «άδεια keys». Το γεγονός ότι το "regedit" σου εμφανίζει σε όλα τα keys μία «(un)defined default value» δεν πρέπει να σε μπερδεύει. Στην πράξη όλες οι «default "string zero-terminated" undefined values» δεν υπάρχουν καθόλου στο registry και δεν καταλαμβάνουν χώρο (για την ακρίβεια καταλαμβάνουν 1 byte το καθένα..). Εμφανίζονται από το regedit για δική σου ευκολία επειδή ο περισσότερος κόσμος δεν καταλαβαίνει τι είναι το '\0'.

 

Ας πούμε ότι έχεις το key HKLM\software\pfff. Τότε, το σύστημα χρειάζεται τα ίδια resources και τον ίδιο χρόνο να κάνει search για το HKLM\software\XXX είτε το HKLM\software\pfff έχει 10 subkeys είτε έχει 10000 subkeys. Και αυτό γιατί το registry συμπεριφέρεται σαν relational database και όχι σαν ιεραρχική database. Τα resources που χρειάζονται είναι μόνο ένα handle και το μέγεθος του registry δεν έχει σημασία (δεν αυξάνει τις απαιτήσεις των resources). Αν τώρα μέσα στο HKLM\software\ έχεις 10000 keys τότε θα επιβαρύνεις τον χρόνο αναζήτησης αλλά και πάλι τα resources αναζήτησης θα είναι τα ίδια. Θα χρειάζεσαι πάλι 1 handle για 10000 παραπάνω keys (ΔΕΝ μας ενδιαφέρουν τα subkeys) που όμως πιάνουν 1 byte το καθένα, δηλαδή 80kBytes ΟΛΑ μαζί. Αν νομίζεις ότι αυτό κάνει αισθητή διαφορά στπ χρήστη ακόμα και σε celeron τότε πάω πάσο.. Το ίδιο φυσικά ισχύει και με τα clsid και guid που δεν είναι τίποτα άλλο από στατικές εγγραφές στο registry.

 

Τέσπα, θα μπορούσε να γράφουμε σελίδες και σελίδες για το θέμα. Για εμένα η ουσία είναι οι παρακάτω προτάσεις:

 

α) Όλοι οι κατασκευαστές κάποιου προγράμματος (πες το reg cleaner) θα ισχυριστούν ότι τα προϊόντα τους κάνουν παπάδες. Γνώστη σε όλους μας η συνταγή... Και ο MacCoffee λέει ότι φτιάνει antivirus proggies, όχι ότι θα τον πιστέψουμε κιόλας.. Επίσης, πόσες άλλες εταιρείες φτιάχουν tcp boosters και system optimizers εδώ και χρόνια; Ποιο σοβαρό σταθερό σύστημα εγκαθιστά προγράμματα τύπου «inet boosters;»

 

β) Αν είσαι poweruser τότε δεν χρειάζεται registry cleaners. Καλύτερα πρόληψη παρά θεραπεία. Σε πολύπλοκα συστήματα ο αυτοματισμός των registry cleaners είναι εντελώς αναξιόπιστος οπότε ο χρόνος που θα χρειαστείς για να «νταντεύεις» τα registry cleaners είναι πολύ περισσότερος από τον χρόνο που χρειάζεσαι για να νταντεύεις τα προγράμματα κατά τη διάρκεια του κάθε (un/)install.

 

γ) Αν είσαι newbie τότε δεν πρέπει να μπλέκεις με τα reg cleaners. Η πιθανότητα να κάνεις ζημιά είναι ποοοοολύ μεγαλύτερη από την πιθανότητα να κερδίσεις σε επιδόσεις.

 

Άρα καταλήγω: Δεν νομίζω ότι είναι σωστό να διαδίδουμε την άποψη ότι «είναι καλό να τρέχετε reg cleaners γιατί το pc σας θα πηγαίνει πιο γρήγορα και θα έχετε περισσότερη άδεια μνήμη». Η διαφορά επιδόσεων μετά από χρήση registry cleaner θα γίνει αισθητή μόνο αν ο χρήστης δεν έχει ιδέα από συντήρηση και έχει φουσκώσει το σύστημα όχι με στατικές εγγραφές όπως guids, mru και software εγγραφές αλλά start-up processes, broken links, obsolute dlls κλπ. Η MS ισχυρίζεται ότι θα δεις διαφορά στις επιδόσεις επειδή φτιάχνει αυτά τα προβλήματα. Η μείωση του μεγέθους του registry είναι απλά side effect.

 

Αυτά. Φυσικά κάθε επιχείρημα ευπρόσδεκτο;-)

 

ps. Το word σώνει και στο profile του χρήστη και όπως ήδη περιέγραψα το profile του χρήστη Χ είναι εντελώς transparent σε όλους τους χρήστες εκτός από τον Χ και κατά συνέπεια όλα τα δεδομένα που αποθηκεύονται στα profiles δεν μειώνουν τις επιδόσεις εκτός αν το μηχάνημα επιτρέπει remote access.

Δημοσ.

Και το script του ποδιού..

 

100.000 dummy keys στο ίδιο level:

 

>
echo off
reg add hklm\software\test\zzz /v 7
echo before...
time 0
reg query hklm\software\test\zzz
time
for /l %%i in (1,1,100000) do reg add hklm\software\test\%%i & echo %%i
echo after...
time 0
reg query hklm\software\test\zzz
time
reg delete hklm\software\test
:end

 

Διαφορά: ούτε ένα εκατοστό του δευτερολέπτου και δεν χρησιμοποιώ καν API..

 

Και φανταστείτε τι software μιλάμε για 100.000 keys.

 

 

Αν τυχόν δοκιμάσει κανείς το script, να κάνει resynch το ρολόι του.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...