Μέχρι σήμερα στο Linux αλλά και στον κόσμο του ανοικτού λογισμικού γενικότερα, κυριαρχεί ο Gcc. Φαίνεται όμως πως έχουμε σημαντικές εξελίξεις, αφού η εταιρεία Pathscale άνοιξε τον κώδικα του εμπορικού μεταγγλωτιστή της και τον προσφέρει στο Linux, το FreeBSD και το Solaris. Μαζί με τον Ekopath 4 η εταιρεία σε αυτή της την κίνηση έχει συμπεριλάβει και το απαραίτητο documentation, μαζί με το πλήρες development stack (compiler, debugger, assembler, standard και runtime libraries.) Η ομάδα του Phoronix σύγκρινε τον Gcc και τον Pathscale τρέχοντας διάφορα μετροπρογράμματα και τα αποτελέσματα είναι εντυπωσιακά. Αν δεχτούμε την αξιοπιστία αυτών των τεστ, βλέπουμε πως ο Pathscale 4 υπερισχύει ξεκάθαρα του Gcc και δίνει ταχύτερες μεταγγλωτίσεις και ανώτερες επιδόσεις. Οι διαφορές ξεκινούν απο 8% και σε ένα τεστ σχεδόν τριπλασιάζονται! Η τιμή της άδειας του εως τώρα εμπορικού compiler, ξεκινούσε περίπου απο τα 1800 δολάρια.
Τι μπορεί να σημαίνει αυτό για τον Gcc; Θα τον αντικαταστήσει αν δεχτούμε πως είναι τόσο ανώτερος; Θα ενσωματωθούν στον Gcc κάποιες απο τις τεχνικές του Ekopath; Ότι και να συμβεί το σίγουρο είναι πως οι χρήστες θα οφεληθούμε με μεγαλύτερη ταχύτητα και με περισσότερες επιλογές. Ας δούμε και δύο απο τα Bencmarks:
Περισσότερες λεπτομέρειες και χαρακτηριστικά για τον EKOPath θα δούμε εδώ.
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε
Σχόλια
Δε νομίζω να αντικαταστήσει το GCC. Το EKOPath είναι πιο πολύ "ειδικού σκοπού" compiler. Το πιθανότερο είναι ότι απλά θα συνυπάρχουν (όπως και με το LLVM).
Ακόμα και αντικατάσταση να γίνει λογικά θα αργήσει.
Επίσης είναι μόνο για PC (και αν κατάλαβα καλά μόνο 64-bit), ενώ ο GCC παράγει κώδικα για μια τεράστια γκάμα αρχιτεκτονικών (υπάρχει αλήθεια κάτι που δεν υποστηρίζει ο GCC;).
Φαντάζομαι ότι μέρος της ταχύτητας του EKOPath4 απορρέει από αυτό ακριβώς το γεγονός (ότι δηλαδή στοχεύει αποκλειστικά σύγχρονα 64-bit PC).
Εντάξει, μην συγκρίνουμε τώρα γλώσσες με ανώτατα χαρακτηριστικά (τύπου Virtual-Machine-Language, JIT-Metacompilers και Multi-Level-Memory-Managment) όπως C99-OpenCL και LLVM, με περασμένου αιώνα προγραμματισμό όπως C και C++ και Compiling για συγκεκριμένη γλώσσα μηχανής (συγκεκριμένο επεξεργαστή). Ακόμη και η Java είναι καλύτερη.
Εδώ σε έχασα λίγο ομολογώ :P
H C99 είναι του τωρινού αιώνα και η C (και η C++) είναι του περασμένου; :P Αφού στις μέρες μας όταν
λέμε C εννοούμε συνήθως C99 ή "GNU C" που είναι C99 + κάποια GNUisms επιπλέον. Επίσης, η C++ έχει
μια χαρά και παρόν και μέλλον, για μια μεγάλη γκάμα εφαρμογών.
O LLVM είναι πολλά πράγματα. Ένα από αυτά είναι ο JIT του, αλλά εκτός από αυτό μπορεί να δουλέψει και ως μια χαρά φυσιολογικός optimizing compiler. Αυτό το κομμάτι του αφορούσε και η παραπάνω σύγκριση.
GCC ως C/C++ compiler vs LLVM ως C/C++ compiler (με clang ή DragonEgg frontend) vs Ekopath ως C/C++ compiler και πάλι.
Το γιατί η Java είναι καλύτερη σε σχέση με C/C++ που γίνεται compile για συγκεκριμμένη γλώσσα μηχανής από καλό optimizing compiler δεν το πολυκαταλαβαίνω επίσης. Σίγουρα δεν εννοείς ότι είναι καλύτερη με βάση την απόδοση, έτσι δεν είναι;
Μάλλον έχει δίκιο ο PKT. Μπορεί για παράδειγμα σε γλώσσες όπως η Python να γράφεις πολύ λιγότερο κώδικα και να έχεις το ίδιο αποτέλεσμα, αλλά σίγουρα οι γλώσσες όπως η C έχουνν καλύτερες επιδόσεις.
Δεν έκανα σύγκριση γλωσσών. Και η OpenCL, C είναι. Απλώς είπα ότι είναι αλλιώς να προγραμματίζεις με αρχιτεκτονική πόρων, για πολλαπλούς επεξεργαστές και λειτουργικά ταυτόχρονα, και αλλιώς είναι για περιορισμένα συστήματα. Το δικαίομα της ελεύθερης πρόσβασης στη γνώση έχει τρία μέρη: Α) Να μυράζεσαι τη γνώση (είναι δικαίωμά σου, αν θες). Β) Να σου ανοίκει η γνώση (δεν είναι δικαίωμά σου, οι πατέντες και πναυματικά δικαιώματα παντός φύσεως είναι εκτός ανθρωπίνων δικαιωμάτων, σε περιορίζουν να ξαναευέυρεις κάτι). Γ) Η πληροφορία να είναι γραμμένη σε κάθε πιθανό σύστημα και κάθε πιθανό πόρο (έτσι η πληροφορία δεν περιορίζετε σε μονοπώλια και κληστά συστήματα ακόμη και αν η πληροφορία είναι κληστή - δες Unigine). Τέλος δες την ανθρώπινη λογική σαν μια πυραμίδα. Όταν σου μηλάνε για την καρυφή (δάσος) μην απαντάς για την βάση (δέντρο). Δεν με ενδιαφέρει η γνώμη της πλοιοψηφίας των προγραματιστών, απλώς πρέπει να εξαναγκαστούν στα νέα πρότυπα (αρχιτεκτονική πόρων).
Συγνώμη και για την ορθογραφία, το έγραψα βιαστικά!!!
Vlepo sto phoronix akoma xrisimopoioun to c-ray benchmark mou.