Jump to content



  • astrolabos
    astrolabos

    Python 3.12: Πιο γρήγορη, πιο λιτή, πιο ανθεκτική στο μέλλον

      Οι βελτιώσεις στις επόμενες εκδόσεις της Python θα την επιταχύνουν και θα ανοίξουν το δρόμο για ακόμα καλύτερα πράγματα

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


    Οι υποδιερμηνείς (Subinterpreters) είναι ένας τρόπος για το runtime της Python να επιτρέπει σε πολλούς διερμηνείς να εκτελούνται μαζί σε μια ενιαία διεργασία, αντί ο κάθε διερμηνέας να εκτελείται σε δική του διεργασία, όπως λειτουργεί τώρα. Οι υποδιερμηνείς αποτελούν μέρος του runtime της Python εδώ και αρκετό καιρό, αλλά δεν υπήρχε τρόπος να αλληλεπιδρούν οι τελικοί χρήστες με αυτούς. Επίσης, οι υποδιερμηνείς δεν έχουν χρησιμοποιηθεί καλά επειδή τα εσωτερικά της Python είναι ένα χάος. Ο προγραμματιστής του πυρήνα της Python Eric Snow και η ομάδα του τακτοποίησαν αρκετά τα εσωτερικά της Python στην Python 3.12 ώστε να κάνουν τους υποδιερμηνείς χρήσιμους και προσθέτουν μια μικρή ενότητα που ονομάζεται interpreters στην τυπική βιβλιοθήκη της Python. Αυτός είναι ένας απλός τρόπος για τους προγραμματιστές να ξεκινούν υποδιερμηνείς και να εκτελούν κώδικα σε αυτούς.

     

    Οι πρώτες δοκιμές του ίδιου του Snow με τους υποδιερμηνευτές έδειξαν ότι λειτουργούσαν πολύ καλύτερα από το threading και την πολυεπεξεργασία. Ένα παράδειγμα είναι μια απλή διαδικτυακή υπηρεσία που έκανε κάποιες εργασίες που δεσμεύονταν από την CPU. Με νήματα, μπορούσε να χειριστεί μόνο 100 αιτήσεις ανά δευτερόλεπτο, αλλά με πολυεπεξεργασία, μπορούσε να χειριστεί 600. Αλλά με υποδιεργασίες, χειριζόταν 11.500 αιτήσεις και η κλιμάκωση (scaling) δεν την επιβράδυνε πολύ. Αυτή τη στιγμή, η ενότητα διερμηνέων δεν κάνει πολλά και δεν έχει ισχυρούς τρόπους για να μοιράζονται οι υποδιερμηνείς την κατάσταση. Αλλά ο Snow πιστεύει ότι μέχρι την Python 3.13 θα υπάρχει πολύ περισσότερη λειτουργικότητα. Εν τω μεταξύ, οι προγραμματιστές ενθαρρύνονται να δοκιμάσουν.

     

    Οι προσαρμοστικές εντολές είναι οι νέοι bytecodes που η Python 3.11 πρόσθεσε στον διερμηνέα. Αυτή η διαδικασία, που ονομάζεται "επιτάχυνση", επιτρέπει σε αυτές τις οδηγίες να αντικαθίστανται αυτόματα κατά την εκτέλεση με εκδόσεις που λειτουργούν καλύτερα για έναν συγκεκριμένο τύπο Python. Έτσι, ο διερμηνέας δεν χρειάζεται να ψάχνει τι είδους αντικείμενα είναι, γεγονός που επιταχύνει πολύ την όλη διαδικασία. Για παράδειγμα, αν μια δεδομένη πράξη πρόσθεσης λαμβάνει πάντα δύο ακέραιους αριθμούς, αυτή η εντολή μπορεί να αντικατασταθεί με μια που υποθέτει ότι οι τελεστές είναι και οι δύο ακέραιοι... Οι κώδικες εντολών εξειδίκευσης στην Python 3.12 είναι σε θέση να προσαρμόζονται καλύτερα.

     

    Και ξεκινώντας από την Python 3.12, οι επικεφαλίδες αντικειμένων χρησιμοποιούν πλέον 96 bytes, που σύμφωνα με το InfoWorld είναι "λίγο λιγότερο από το μισό από ό,τι ήταν πριν".


    Πηγή
    Φωτογραφία: eamesBot/Shutterstock
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.