Προγραμματισμός

Το Mozilla Firefox ενισχύει την απόδοση του JavaScript

Οι χρήστες του Firefox μπορούν να αναμένουν βελτιωμένη απόδοση JavaScript στο πρόγραμμα περιήγησης Firefox 83, με ενεργοποιημένη από προεπιλογή την ενημέρωση Warp στον κινητήρα JavaScript του SpiderMonkey.

Ονομάζεται επίσης WarpBuilder, το Warp βελτιώνει την απόκριση και τη χρήση της μνήμης και επιταχύνει τη φόρτωση σελίδων κάνοντας αλλαγές σε μεταγλωττιστές JiT (just-in-time). Η βελτιστοποίηση του JiT αλλάζει ώστε να βασίζεται αποκλειστικά στην απλή γραμμική μορφή bytecode CacheIR, συγκεκριμένα στα δεδομένα CacheIR που συλλέγονται από τα βασικά επίπεδα. Η νέα αρχιτεκτονική που χρησιμοποιείται στο πρόγραμμα περιήγησης περιγράφεται επίσης ως πιο διατηρήσιμη και ξεκλειδώνει πρόσθετες βελτιώσεις SpiderMonkey.

Ο Firefox 83 κυκλοφόρησε στην έκδοση beta στις 20 Οκτωβρίου και έχει προγραμματιστεί να κυκλοφορήσει στις 17 Νοεμβρίου. Το Warp έχει αποδειχθεί ότι είναι ταχύτερο από το Ion, το προηγούμενο JiT βελτιστοποίησης του SpiderMonkey, συμπεριλαμβανομένης βελτίωσης 20% στον χρόνο φόρτωσης των Εγγράφων Google. Άλλοι ιστότοποι με έντονη JavaScript όπως το Netflix και το Reddit έχουν επίσης βελτιώσει.

Το Basing Warp στο CacheIR επέτρεψε την αφαίρεση κώδικα σε ολόκληρο τον κινητήρα που ήταν απαραίτητος για την παρακολούθηση δεδομένων παγκόσμιου τύπου συμπερασμάτων που χρησιμοποιεί το IonBuilder, με αποτέλεσμα την επιτάχυνση. Παρόλο που και οι δύο IonBuilder και WarpBuilder παράγουν Ion MIR, μια ενδιάμεση αναπαράσταση που χρησιμοποιείται από το βελτιστοποιημένο back-end JiT, το IonBuilder είχε πολλούς πολύπλοκους κώδικες που δεν χρειάζονταν στο WarpBuilder. Το Warp μπορεί επίσης να κάνει περισσότερη δουλειά εκτός νήματος και χρειάζεται λιγότερες ανακατασκευές. Τα σχέδια απαιτούν συνεχείς βελτιστοποιήσεις στο Warp, το οποίο προς το παρόν είναι πιο αργό από το Ion σε ορισμένα συνθετικά σημεία αναφοράς.

Η Warp αντικατέστησε το εμπρόσθιο άκρο - τη φάση κατασκευής MIR - του IonMonkey JiT. Τα σχέδια απαιτούν την κατάργηση του παλιού κώδικα και της αρχιτεκτονικής, κάτι που πιθανότατα θα συμβεί στον Firefox 85. Ως αποτέλεσμα, αναμένονται πρόσθετες βελτιώσεις απόδοσης και χρήσης μνήμης. Το Mozilla θα συνεχίσει επίσης να βελτιστοποιεί σταδιακά το πίσω μέρος του IonMonkey JiT, καθώς η Mozilla πιστεύει ότι υπάρχει ακόμη περιθώριο βελτίωσης για φόρτους εργασίας εντάσεως JavaScript. Επίσης στην ανάπτυξη είναι ένα εργαλείο για προγραμματιστές ιστού και Mozilla για να εξερευνήσουν τα δεδομένα CacheIR για μια λειτουργία JavaScript.