Firefox 6 με βελτιστοποιήσεις λόγω GCC

Ανώνυμος (χωρίς επαλήθευση) | Κυρ, 05/01/2011 - 11:08 | 2' | 4

Μετά από αρκετές αποτυχημένες προσπάθειες, φαίνεται πως οι μηχανικοί της Mozilla κατάφεραν να χρησιμοποιήσουν το GCC 4.5 με ενεργοποιημένα optimization flags (-O3) στις δοκιμαστικές builds του Firefox για Linux, πράγμα που σημαίνει ότι στο μέλλον οι εκδόσεις του Firefox στο Linux θα είναι εξίσου γρήγορες με τις αντίστοιχες για Windows χωρίς καθυστερήσεις.

Μην περιμένετε όμως άμεσα αποτελέσματα. Όπως έγραψε ο Mike Hommey στο blog του, οι πρώτες εκδόσεις Firefox που θα αξιοποιούν αυτήν την μετάβαση σε GGC 4.5 με τις βελτιστοποιήσεις στην ταχύτητα θα είναι οι beta του Firefox 6. Θυμίζουμε ότι η πρώτη beta του Firefox 6 αναμένεται τον ερχόμενο Σεπτέμβριο αφού στο Mozilla έχουν αποφασίσει να επιταχύνουν την κυκλοφορία νέων εκδόσεων.

Δώσε αστέρια!

MO: (ψήφοι: 0)

Σχόλια

Είναι σίγουρο πως θα έχει με -03 καλύτερες επίδόσεις; Έχω καιρό να ασχολήθώ, αλλά αν θυμάμαι καλά με αυτό το switch παράγονται μικρότερα εκτελέσιμα σε μέγεθος. Δηλαδή θα είναι πιο γρήγορος στην εκκίνηση αλλά μάλλον όχι γρηγορότερος στο σερφάρισμα. Ή ίσως και λίγο πιο αργός; Εκτός αν κάνω λάθος ή εχουν γίνει μεγάλες αλλαγές στον Gcc 4.5.

Βασικά δεν είναι μόνο αυτό. Απ'οσο γράφει ο developer στο blog του, η μετάβαση στον GCC 4.5 θα τους επιτρέψει να χρησιμοποιήσουν και κάποια εργαλεία (profiling, κλπ) για το γενικότερο συμμάζεμα του Firefox 6 και την επιτάχυνσή του.

Γράφοντας το κείμενο, δεν ανέφερα και αυτή τη σημαντική λεπτομέρεια οπότε νομίζει κανείς ότι το όλο κόλπο είναι η χρήση του -O3, ενώ στην πραγματικότητα πρόκειται για μια σειρά από βελτιστοποιήσεις...

To -O3 ενεργοποιεί βελτιστοποιήσεις όπως loop unrolling οι οποίες μπορεί να αυξήσουν το μέγεθος του εκτελέσιμου, προς όφελος της ταχύτητας εκτέλεσης.

Το -Os όπως είπε και ο nplatis βελτιστοποιεί για μικρότερο μέγεθος.

Κάποιες φορές υπάρχουν φήμες ότι το -Os παράγει και πιο γρήγορα εκτελέσιμα ίσως λόγω θεμάτων με cache / εικονική μνήμη αλλά γενικά το -O3 υπερισχύει.

Οι νεότερες γενιές του GCC έχουν περισσότερες δυνατότητες για πιο προχωρημένες μεθόδους βελτιστοποίησης όπως LTO (link-time-optimization) και profile-based optimization. Και οι 2 αυτές μέθοδοι μπορούν και την ταχύτητα και το μέγεθος να βελτιώσουν.