Γιατί το Chrome έχει τόσες πολλές ανοιχτές διαδικασίες;

Αν έχετε ρίξει μια ματιά στο Task Manager ενώ εκτελείτε το Google Chrome, ίσως εκπλαγείτε να δείτε ότι ο αριθμός των καταχωρήσεων chrome.exe υπερέβη ριζικά τον αριθμό των πραγματικών παραθύρων του Chrome που είχατε ανοίξει. Ποια είναι η συμφωνία με όλες αυτές τις διαδικασίες;

Η σημερινή συνεδρία «Ερώτηση και απάντηση» μας προσφέρει ευγενική προσφορά του SuperUser - μια υποδιαίρεση του Stack Exchange, μιας ομαδοποίησης ιστότοπων Q&A με γνώμονα την κοινότητα.

Το ερώτημα

Εάν είστε περίεργοι για όλες αυτές τις φαινομενικά διπλές διεργασίες Chrome, δεν είστε μόνοι. Ο αναγνώστης SuperUser PolyShell θέλει πραγματικά να φτάσει στο κάτω μέρος των πραγμάτων:

Στον Διαχειριστή εργασιών των Windows φαίνεται ότι εκτελούνται πολλές διεργασίες Chrome, παρόλο που έχω ανοιχτό μόνο ένα παράθυρο Chrome.

Πώς είναι αυτό δυνατόν? Πάντα πίστευα ότι κάθε ανοιχτό πρόγραμμα αντιπροσώπευε μια διαδικασία.

Ενώ ο τεράστιος αριθμός των μεμονωμένων διεργασιών chrome.exe φαίνεται αρχικά προβληματικός, υπάρχει μια απολύτως καλή εξήγηση για τον κατακλυσμό.

Οι απαντήσεις

Αρκετοί συνεργάτες του SuperUser μπήκαν στην απάντηση στην ερώτηση. Ο Jeff Atwood προσέφερε μια αναφορά στο ιστολόγιο ανάπτυξης Chrome:

Μπορείτε να διαβάσετε τις λεπτομέρειες εδώ:

Το Google Chrome εκμεταλλεύεται αυτές τις ιδιότητες και τοποθετεί εφαρμογές ιστού και προσθήκες σε ξεχωριστές διαδικασίες από το ίδιο το πρόγραμμα περιήγησης. Αυτό σημαίνει ότι ένα σφάλμα απόδοσης κινητήρα σε μία εφαρμογή ιστού δεν θα επηρεάσει το πρόγραμμα περιήγησης ή άλλες εφαρμογές ιστού. Αυτό σημαίνει ότι το λειτουργικό σύστημα μπορεί να εκτελεί παράλληλα εφαρμογές ιστού για να αυξήσει την απόκρισή τους και αυτό σημαίνει ότι το ίδιο το πρόγραμμα περιήγησης δεν θα κλειδώσει εάν μια συγκεκριμένη εφαρμογή ιστού ή μια προσθήκη σταματήσει να αποκρίνεται. Σημαίνει επίσης ότι μπορούμε να εκτελέσουμε τις διαδικασίες του κινητήρα απόδοσης σε ένα περιοριστικό sandbox που βοηθά στον περιορισμό της ζημιάς σε περίπτωση εκμετάλλευσης.

Βασικά, κάθε καρτέλα έχει μία διαδικασία εκτός αν οι καρτέλες προέρχονται από τον ίδιο τομέα. Ο renderer έχει μια διαδικασία για τον εαυτό του. Κάθε προσθήκη θα έχει μία και έτσι κάθε επέκταση που είναι ενεργή.

Το KronoS μοιράζεται ένα τέχνασμα για την εξέταση των διεργασιών στο Chrome αντί για την πιο κρυφή Διαχείριση Εργασιών που διαβάζεται:

Μπορείτε να δείτε ποια διαδικασία κάνει τι:

 Μενού-> Εργαλεία -> Διαχείριση εργασιών

Που μοιάζει με αυτό:

Η Deizel προσφέρει έναν βοηθό για τους μαθητές της οπτικής εκεί έξω:

Μην ξεχάσετε να διαβάσετε το κόμικ εισαγωγής Chrome που το καλύπτει μεταξύ άλλων αποφάσεων σχεδιασμού.

Όλο το κόμικ του Chrome αξίζει να διαβαστεί για τους θαυμαστές του Chrome καθώς εξηγεί πολλές άλλες επιλογές σχεδίασης που εμπλέκονται στην παραγωγή του προγράμματος περιήγησης. Είναι επίσης μια διασκεδαστική ανάγνωση.

Έχετε κάτι να προσθέσετε στην εξήγηση; Ακούστε στα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange; Δείτε ολόκληρο το νήμα συζήτησης εδώ.