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

Το Microsoft Pyjion ενισχύει την ταχύτητα του Python

Ένα νέο έργο ανοιχτού κώδικα της Microsoft, το Pyjion, βελτιώνει την ταχύτητα της γλώσσας Python αυξάνοντας τον διερμηνέα αποθεμάτων της με ένα JIT που προέρχεται από το έργο CoreCLR της Microsoft.

Ο τυπικός χρόνος εκτέλεσης του Python, το CPython, ερμηνεύει μόνο τον bytecode των εφαρμογών Python και δεν επιταχύνεται με τη σύνταξη του κώδικα με οποιονδήποτε τρόπο. Μια κοινή μέθοδος για την επιτάχυνση του Python είναι η αντικατάσταση του CPython εντελώς. Η PyPy, μια δημοφιλής αντικατάσταση CPython, χρησιμοποιεί έναν μεταγλωττιστή JIT για την επιτάχυνση των εφαρμογών Python.

Το PyPy παρέχει μια ισχυρή ώθηση ταχύτητας σε πολλές εφαρμογές, αλλά όχι σε όλες, και μερικές φορές προσφέρει ακόμη χειρότερη απόδοση από το CPython. Επίσης, δεν έχει την καλύτερη υποστήριξη για μονάδες επέκτασης CPython, οι οποίες χρησιμοποιούνται ευρέως σε εφαρμογές Python όπως η επιστημονική πληροφορική. Έτσι, ορισμένοι από τους πιο άπληστους χρήστες της Python δεν μπορούν να αξιοποιήσουν καθόλου το PyPy.

Η Pyjion ακολουθεί μια διαφορετική προσέγγιση. Προσθέτει ένα JIT API στο CPython, έτσι πολλά JIT μπορούν να συνδεθούν απευθείας στο CPython. Δεδομένου ότι το CPython εξακολουθεί να χρησιμοποιείται, οι εφαρμογές εκτελούνται κανονικά, συμπεριλαμβανομένων εκείνων που βασίζονται σε μονάδες επέκτασης.

Επίσης, το Pyjion στοχεύει στο Python 3, όπου άλλα έργα επιτάχυνσης Python ευνόησαν σε μεγάλο βαθμό το Python 2. Το PyPy υποστηρίζει το Python 3, αλλά μόνο το Python 3.2, τόσες πολλές γλωσσικές κατασκευές προστέθηκαν από τότε (όπωςasync / περιμένετε) δεν θα λειτουργήσει.

Η Microsoft ισχυρίζεται ότι η προσέγγιση του Pyjion είναι πιο ευέλικτη, δεδομένου ότι το στοιχείο JIT αντιμετωπίζεται ως πόλος με δυνατότητα σύνδεσης. Η επιλογή ενός JIT που βασίζεται στο CoreCLR δεν είναι η μόνη επιλογή, αλλά χρησιμεύει ως απόδειξη της έννοιας. Σύμφωνα με την τεκμηρίωση για το GitHub, η Microsoft ελπίζει ότι αυτό θα "οδηγήσει σε πολλαπλασιασμό των χρόνων εκτέλεσης JIT για την Python, επιτρέποντας στους ανθρώπους να επιλέξουν ένα JIT που ταιριάζει καλύτερα στον φόρτο εργασίας τους."

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

$config[zx-auto] not found$config[zx-overlay] not found