Pyston 2 μια εφαρμογή του Python με έναν μεταγλωττιστή JIT

Μετά από ένα τριετές κενό στην ανάπτυξη, έχει δημοσιευτεί η έναρξη του έργου Pyston 2, τι ανέπτυξασε μια εφαρμογή υψηλής απόδοσης της γλώσσας Python χρησιμοποιώντας τις εξελίξεις του έργου LLVM.

Η εφαρμογή ξεχωρίζει για τη χρήση σύγχρονων τεχνολογιών συλλογής JIT και στοχεύει να επιτύχει υψηλή απόδοση παρόμοια με τις παραδοσιακές γλώσσες συστήματος όπως το C ++.

Ο κωδικός από προηγούμενες εκδόσεις από τον Pyston διανεμήθηκε με την άδεια Apache, αλλά ο κωδικός Pyston 2 δεν είναι διαθέσιμος ακόμη και κυκλοφορούν μόνο έτοιμες προς χρήση εκδόσεις για το Ubuntu 18.04 και 20.04 (ένα αρχείο με τον κωδικό είναι διαθέσιμο για λήψη, αλλά υπάρχει μόνο ένα στέλεχος με πληροφορίες ότι το έργο είναι ακόμα κλειστό) .

Η δημοσίευση του κώδικα αποτελεί μέρος των σχεδίων των προγραμματιστώναλλά αυτό θα γίνει μετά την ολοκλήρωση του σχηματισμού επιχειρηματικού μοντέλου της νέας εταιρείας και αποφασίστηκε να συνεχίσει να αναπτύσσει το Pyston χωρίς την οικονομική υποστήριξη του Dropbox.

Σχετικά με το Pyston 2

Σε αντίθεση με προηγούμενες εκδόσεις, Το Pyston 2 είναι σταθερό και όχι ως δοκιμαστική έκδοση. Έχουν γίνει πολλές εργασίες για τη βελτιστοποίηση της απόδοσης και το Pyston 2 είναι τώρα πιο γρήγορο από το αρχικό Python 3.8 κατά περίπου 20% όταν περνάει η δοκιμαστική σουίτα python-macrobenchmark.

Τα πιο αξιοσημείωτα κέρδη απόδοσης εμφανίζονται σε εγγενείς φόρτους εργασίας εφαρμογών ιστού. Σε ξεχωριστές δοκιμές όπως το chaos.py και το nbody.py, το Pyston 2 ξεπερνά το Python 3.8 κατά συντελεστή 2. Το κόστος χρήσης του JIT είναι μια μικρή αύξηση στην κατανάλωση μνήμης.

Είμαστε πολύ ενθουσιασμένοι που κυκλοφορούμε το Pyston v2, μια ταχύτερη και πολύ συμβατή εφαρμογή της γλώσσας προγραμματισμού Python. Η έκδοση 2 είναι 20% γρηγορότερη από την τυπική Python 3.8 στα μακροπρόθεσμα σήματα μας. Το πιο σημαντικό, είναι πιθανότατα πιο γρήγορο στον κώδικά σας. Το Pyston v2 μπορεί να μειώσει το κόστος του διακομιστή, να μειώσει τις καθυστερήσεις χρήστη και να βελτιώσει την παραγωγικότητα του προγραμματιστή.

Το Pyston v2 είναι εύκολο να εφαρμοστεί, οπότε αν ψάχνετε για καλύτερη απόδοση Python, σας συνιστούμε να πάρετε πέντε λεπτά και να δοκιμάσετε το Pyston. Αυτό είναι ένας από τους ευκολότερους τρόπους για να επιταχύνετε το έργο σας.

Όσον αφορά τη συμβατότητα με τη μητρική Python, το έργο Pyston θεωρείται η πιο συμβατή εναλλακτική εφαρμογή για το CPython, αφού το Pyston είναι ένα πιρούνι της κύριας βάσης κώδικα CPython.

Πύστον υποστηρίζει όλες τις λειτουργίες CPython, συμπεριλαμβανομένου του C API για την ανάπτυξη επεκτάσεων C. Το Pyston αναπτύχθηκε αρχικά από το Dropbox, το οποίο το 2017 αποφάσισε να διακόψει την εσωτερική ανάπτυξη. Στις αρχές του 2020, οι κορυφαίοι προγραμματιστές της Pyston ίδρυσαν την εταιρεία τους, επανεφεύρεσαν πλήρως το έργο και άρχισαν να εργάζονται στο Pyston με πλήρη απασχόληση.

Δεν παρέχονται ακόμη τεχνικές λεπτομέρειες σχετικά με το Pyston 2 padding, αναφέρονται μόνο το DynASM JIT, η ενσωματωμένη προσωρινή αποθήκευση και οι γενικές βελτιστοποιήσεις CPython. Η προηγούμενη έκδοση του Pyston χρησιμοποίησε μία μέθοδο JIT κάθε φορά, παρόμοια με την JIT σε σύγχρονες μηχανές JavaScript.

Στο JIT, ο κώδικας Python αναλύθηκε και μεταφράστηκε σε μια ενδιάμεση αναπαράσταση LLVM (IR, Ενδιάμεση αναπαράσταση). Επιπλέον, η αναπαράσταση IR υποβλήθηκε σε επεξεργασία στο LLVM optimizer και μεταβιβάστηκε στον κινητήρα LLVM JIT για εκτέλεση, ο οποίος μετέτρεψε την παράσταση IR σε κώδικα μηχανής.

Για να λάβετε πληροφορίες σχετικά με τους τύπους μεταβλητών για προγράμματα στη δυναμική γλώσσα Python, χρησιμοποιήθηκε η τεχνική της πιθανολογικής πρόβλεψης των τύπων αντικειμένων, ακολουθούμενη από την αποσαφήνιση της σωστής επιλογής τύπου κατά την εκτέλεση.

Ως εκ τούτου, ο Pyston διαφοροποίησε συνεχώς την εκτέλεση μεταξύ δύο κλάδων: το γρήγορο, όταν επιβεβαιώνονται οι προβλεπόμενοι ρυθμοί και το αργό, το οποίο χρησιμοποιείται σε περίπτωση αναντιστοιχίας τύπου.

Η εργασία θα μπορούσε να γίνει σε λειτουργία πολλαπλών νημάτων, επιτρέποντας την παράλληλη εκτέλεση πολλών νημάτων κώδικα στη γλώσσα Python και απαλλαγμένο από το παγκόσμιο κλείδωμα διερμηνέα (GIL).

Τελικά αν θέλετε να μάθετε περισσότερα για αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες στο παρακάτω σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.