Πώς μπορεί ένα iPhone 6s της εποχής του 2015 να τρέχει με την τελευταία έκδοση του iOS όταν διαθέτει 2 μόνο GB μνήμη RAM, ενώ τα Android κινητά χρειάζονται x8 φορές τόση RAM; Το Android σχεδιάστηκε για να υποστηρίζει πολλούς διαφορετικούς τύπους επεξεργαστών, και πολλούς διαφορετικούς κατασκευαστές. Κανονικά, το λογισμικό που έχει γραφτεί για ένα είδος συστήματος δεν μπορεί να τρέξει σε κάποιο άλλο. Πριν λειτουργήσει σε άλλο σύστημα θα πρέπει να «μεταφερθεί» (να γίνει ported) κάτι το οποίο συχνά περιλαμβάνει επανεγγραφή των ασυμβίβαστων bits.

μνήμη RAM

Για να το ξεπεράσουν αυτό, οι εφαρμογές για Android κυκλοφορούν πάντα σε πλατφόρμα Java. Η Java είναι έξυπνη λόγω της εικονικής μηχανής της: μπορείτε να γράψετε μια εφαρμογή σε Java και στη συνέχεια το εικονικό μηχάνημα «μεταφράζει» αυτό τον κώδικα κατά το χρόνο εκτέλεσης για να δουλέψει σε οποιοδήποτε σύστημα τρέχει. Έτσι αντί να ξαναγράψετε και να ανασυνθέσετε τον κώδικα μόνοι σας, η εικονική μηχανή της Java το κάνει μόνη της.

Αυτό φυσικά έρχεται με ένα κόστος. 

Η εικονική μηχανή της Java είναι πολύπλοκη και απαιτεί πολλή μνήμη RAM, όχι μόνο για να διαχειριστεί τις διεργασίες της ίδιας της εικονικής μηχανής αλλά και για να μεταφράσει τον αρχικό Java κώδικα μιας εφαρμογής που τρέχει σε κάποιο σύστημα.

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

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

Τέλος, το λειτουργικό σύστημα Android είναι από τη φύση του χτισμένο με τέτοιο τρόπο, ούτως ώστε να ενθαρρύνει τις εφαρμογές να χρησιμοποιούν όσο το δυνατόν περισσότερη μνήμη RAM. Στη συνέχεια, κάθε φορά, το Android καθαρίζει τα δεδομένα της μνήμης RAM που δεν χρησιμοποιούνται πλέον (“garbage”) και απελευθερώνει προσωρινή μνήμη, επιτρέποντας σε άλλες εφαρμογές να την χρησιμοποιήσουν. Αυτή η μέθοδος, είναι αποτελεσματική, αλλά όταν υπάρχει πολύ RAM. Διαφορετικά το σύστημα ξοδεύει πάρα πολύ χρόνο συλλέγοντας σκουπίδια.

Για τους λόγους αυτούς, τουλάχιστον 4GB RAM στο Android μάλλον είναι αρκετή για μια ομαλή απόδοση. Εάν δεν διαθέτετε τα χρήματα τότε τα 2GB θα πρέπει να είναι το ελάχιστο.

Γιατί το iOS δεν χρησιμοποιεί τόση RAM όσο το Android;

Η Apple ασκεί πολύ μεγαλύτερο έλεγχο σε ολόκληρο το οικοσύστημα του iOS. Αν θέλετε να χρησιμοποιήσετε το iOS, τότε έχετε μόνο μία επιλογή: το iPhone. Αν θέλετε να δημιουργήσετε εφαρμογές iOS, τότε θα πρέπει να χρησιμοποιήσετε τα εργαλεία της Apple και να το κάνετε με τον τρόπο της Apple.

Απόλυτη πρακτική, αλλά υπάρχουν πάρα πολλά οφέλη. Επειδή η Apple γνωρίζει τις ακριβείς προδιαγραφές της κάθε συσκευής που θα τρέξει το λειτουργικό της σύστημα, μπορεί να λάβει καλύτερες αποφάσεις. Για παράδειγμα, ενώ το Android πρέπει να υποστηρίζει πολλούς τύπους επεξεργαστών, το iOS τρέχει πάντα σε hardware βασισμένο στο ARM.

Έτσι το iOS δεν χρειάζεται μια εικονική μηχανή για να μετατρέπει bits, on-the-fly όπως το Android. Όλες οι εφαρμογές αναπτύσσονται στον εγγενή κώδικα της Apple και αυτός ο κώδικας εκτελείται σε εγκεκριμένο hardware.  Αυτό σημαίνει σημαντικά λιγότερη RAM.

Επιπλέον, το iOS έχει μια εντελώς διαφορετική προσέγγιση στη διαχείριση μνήμης. Ενώ η μνήμη στο Android διαχειρίζεται από το λειτουργικό σύστημα, η μνήμη του iOS διαχειρίζεται από τις ίδιες τις εφαρμογές. Αντί λοιπόν το iOS να επιτρέπει στις εφαρμογές να καταναλώνουν όσο το δυνατόν περισσότερη μνήμη RAM, οι εφαρμογές του iOS παραχωρούν ή ζητάνε μνήμη αυτόματα ανάλογα με τις ανάγκες τους.

Έτσι αν και τα iPhone έχουν λιγότερη μνήμη RAM δεν μπορούμε να πούμε ότι έχουν χειρότερη απόδοση. Το iOS απλά διαθέτει μια διαφορετική προσέγγιση στη διαχείριση μνήμης, επειδή δεν χρειάζεται την εικονική μηχανή του Android.

 

-------------------------

Ακολουθήστε το Gizchina Greece στο Google News για να μαθαίνετε πρώτοι και άμεσα νέα από Κίνα! Αν ψάχνετε HOT προσφορές, κάντε εγγραφή στο κανάλι μας στο Telegram!