iOS Multitasking: Οι αλήθειες & οι μύθοι
multitasking.png 79,97KB 105 λήψεις
Ένα από τα χαρακτηριστικά του iOS που αναδεικνύουν την μοναδικότητα του, είναι ο τρόπος με τον οποίο κατανέμει τους πόρους του, στο σύνολο των εργασιών που επιλέγει να πραγματοποιεί ο χρήστης στην συσκευή του.
Οι πολυ-εργασίες στο iOS είναι ένα πολύ έξυπνα δομημένο και πλήρως αυτοματοποιημένο χαρακτηριστικό που αφοσιώνεται αποκλειστικά στην παρακάτω επιδίωξη:
Να μπορεί ο χρήστης να εναλλάσσεται εργονομικά μεταξύ των εκκρεμών εργασιών του (εφαρμογές), με τον ταχύτερο δυνατό τρόπο, αντλώντας όσο γίνεται λιγότερους πόρους και λιγότερη ενέργεια από την συσκευή.
Παρόλο που όλοι μας εκμεταλλευόμαστε καθημερινά το multitasking, πολλοί από εμάς, ακόμα και μερίδα των πιο έμπειρων, δεν έχουμε κατανοήσει πλήρως το τρόπο που λειτουργεί. Το αποτέλεσμα είναι να δημιουργείται σύγχυση και διάσταση απόψεων, που όσο συντηρούνται οδηγούν σε μύθους:
«Η παραμονή των εφαρμογών στο switcher, απασχολούν τον επεξεργαστή μου, γεμίζουν την μνήμη μου, αποστραγγίζουν την μπαταρία μου και κάνουν την συσκευή μου πιο αργή. Πρέπει το συντομότερο να τις σκοτώσω.»
Για να συμφωνήσουμε λοιπόν & να καταλήξουμε σε ασφαλή συμπεράσματα, πρέπει πρώτα να περιγράψουμε μέσα από ποιες καταστάσεις μπορεί να περάσει μια εφαρμογή, από την στιγμή που την εκκινήσουμε, μέχρι την στιγμή που θα την εγκαταλείψουμε.
Μια εφαρμογή στο περιβάλλον του iOS μπορεί να βρεθεί στις παρακάτω διαφορετικές καταστάσεις (modes):
Ενεργή στο προσκήνιο (Active in Foreground)
Είναι η φυσιολογική κατάσταση μιας εφαρμογής όταν την χρησιμοποιούμε. Αντλεί στο μέγιστο επεξεργαστική ισχύ, μνήμη και ενέργεια για να επιτελέσει τις λειτουργίες της.
Ενεργή στο υπόβαθρο (Active in Background)
Μετά το πάτημα του Home Button, η εφαρμογή βρίσκεται στο Switcher και εξακολουθεί να αντλεί επεξεργαστική ισχύ, μνήμη και ενέργεια.
Αδρανοποιημένη (Suspended)
Η εφαρμογή εξακολουθεί να βρίσκεται στο switcher, καταλαμβάνει μνήμη, δεν έχει ωστόσο καμία απαίτηση σε επεξεργαστική ισχύ ή ενέργεια.
Ανενεργή - Τερματισμένη (Inactive-Terminated)
Σ΄αυτή την κατάσταση η εφαρμογή δεν έχει καμία απαίτηση από τους πόρους του συστήματος. Ή δεν εκκινήθηκε ποτέ ή τερματίστηκε. (Mπορεί να βρίσκεται ακόμα και στο switcher)
Ποια είναι η τύχη των εφαρμογών μετά το πάτημα του Home Button;
Η πλειονότητα των εφαρμογών λίγα δευτερόλεπτα μετά το πάτημα του Home Button, θα αδρανοποιηθεί. Το iOS υπολογίζοντας την πιθανότητα να επαναφέρετε κάποια στιγμή την εφαρμογή σας στο προσκήνιο, κρατά φορτωμένα τα δεδομένα της στην μνήμη, έτσι ώστε:
- Να ελαχιστοποιηθεί δραστικά ο χρόνος επαναφοράς της
- Να μπορείτε να συνεχίσετε την εργασία σας ακριβώς εκεί που την αφήσατε
- Να απαιτηθεί λιγότερη επεξεργαστική ισχύς & ενέργεια από το σύστημα
Υπάρχει μια 2η περίπτωση όπου μια εφαρμογή, παράλληλα με την «είσοδο της» στο switcher , εκτελεί μια εργασία. Όπως για παράδειγμα downloading/uploading ή φορτώνει τα δεδομένα ενός αρχείου.
Αυτή η εφαρμογή αιτείται στο iOS παράταση του χρόνου λειτουργίας της, έστω και στο υπόβαθρο, προκειμένου να ολοκληρώσει το task που της ανατέθηκε όταν βρισκόταν ακόμη στο προσκήνιο. Έτσι μπορεί να κερδίσει έως και μια ολιγόλεπτη παραμονή στο switcher με πλήρη ανάπτυξη των λειτουργιών της μέχρι να αδρανοποιηθεί.
Τέλος υπάρχει μια εξαιρετικά μικρή κατηγορία Apps, που έχουν την πολυτέλεια να τρέχουν συνεχώς στο υπόβαθρο χωρίς να αδρανοποιούνται.
Ενδεικτικά τέτοιου είδους εφαρμογές είναι αυτές που χρησιμοποιούν το GPS για να εντοπίζουν την θέση μας και να μας δίνουν οδηγίες πλοήγησης, αυτές που παίζουν μουσική στο υπόβαθρο και αυτές που περιμένουν εισερχόμενες VoIP κλήσεις. Είναι πρακτικά αδύνατο να τρέχει μια τέτοια διεργασία στο παρασκήνιο και να μην το ξέρετε.
Συμπερασματικά λοιπόν το iOS αδρανοποιεί επιλεκτικά τις εφαρμογές στο παρασκήνιο, δίνοντας προτεραιότητα στην ολοκλήρωση των διεργασιών τους και παράλληλα κρατά φορτωμένα τα δεδομένα τους στην μνήμη του, για άμεση & ταχύτατη επαναφορά στο προσκήνιο.
Κάπου εδώ καταρρίπτεται ο μύθος του «αργού συστήματος» εφόσον η εκκίνηση μιας εργασίας από την ανενεργή κατάσταση απαιτεί πολύ περισσότερο χρόνο, πόρους και ενέργεια απ΄ότι να επανέλθει από αδράνεια.
Το iOS δεν θα πάθει ποτέ άνοια ή Alzheimer
Πόσες φορές βλέπετε την μνήμη σας στα όρια της; Μήπως σχεδόν πάντα; Πόσες φορές νιώσατε πως τα νούμερα του ανταγωνισμού σας έχουν ξεπεράσει προ πολλού;; Πόσες φορές σκεφτήκατε πως το 1GB/2GB είναι λίγο;
Το multitasking έχει έναν μαγικό τρόπο να διαχειρίζεται την RAM μνήμη, που πρακτικά την καθιστά ανεξάντλητη. Εν αγνοία μας παραχωρεί και απελευθερώνει μνήμη έτσι ώστε να κρατά όσο περισσότερες εφαρμογές γίνεται αδρανοποιημένες και ταυτόχρονα πλήρως λειτουργική αυτή που είναι στο προσκήνιο.
Ας φέρουμε ένα παράδειγμα:
Έχουμε 5-10 εφαρμογές σε αδράνεια (switcher) και η μνήμη μας στο 85-90%.
Αν αποφασίσουμε να παίξουμε ένα βαρύ παιχνίδι, το iOS θα μας ανοίξει χώρο:
Θα αποφορτώσει από την μνήμη τα δεδομένα μιας ή περισσοτέρων εφαρμογών που είναι σε αδράνεια, προκειμένου να εκχωρήσει επαρκή μνήμη στο παιχνίδι μας. Οι «δωρητές μνήμης» θα μπουν σε ανενεργή κατάσταση παρόλο που θα εξακολουθούν να εμφανίζονται στο γραφικό περιβάλλον του Switcher.
Η RΑΜ υπάρχει για να την αξιοποιούμε στο έπακρο. Αυτή η συνεχής ανακύκλωση των δεδομένων της μνήμης, θέτει την συσκευή σε ετοιμότητα και σε εγρήγορση όταν της ζητηθεί.
Σταματάμε λοιπόν να σκοτώνουμε αδρανείς εφαρμογές. Το μόνο που καταφέρνουμε είναι να σκοτώνουμε την μπαταρίας μας...
... αφήνουμε το iOS να κάνει την δουλειά του όπως αυτό ξέρει πολύ καλύτερα από οποιονδήποτε.
Τελευταία επεξεργασία από: vrachamis, 23/02/2017 - 17:34