Έχει ήδη ανακοινωθεί η σταθερή έκδοση του Portage 3.0

Πρόσφατα προγραμματιστές που είναι υπεύθυνοι για το σύστημα διαχείρισης πακέτων Μεταφορά (στη διανομή Gentoo Linux) ανακοίνωσε την κυκλοφορία της σταθερής έκδοσης της έκδοσης 3.0.

Στο οποίο, η κύρια καινοτομία αυτού του νέου κλάδου που παρουσιάζεται, είναι το έργο που πραγματοποιήθηκε μακροπρόθεσμα στο μετάβαση στο Python 3 και τέλος της υποστήριξης για το Python 2.7 (κάτι που είχε ήδη δει για μεγάλο χρονικό διάστημα, καθώς αυτός ο κλάδος ήταν επίσημα χωρίς υποστήριξη για αρκετούς μήνες)

Έχουμε καλά νέα! Το έργο Gentoo Portage σταθεροποίησε πρόσφατα την έκδοση 3.0 του διαχειριστή πακέτων.

Τι νέα? Λοιπόν, αυτή η τρίτη έκδοση του Portage καταργεί την υποστήριξη για το Python 2.7, το οποίο ήταν μια συνεχής προσπάθεια στο κύριο αποθετήριο Gentoo από το έργο Gentoo Python καθ 'όλη τη διάρκεια του 2020.

Εκτός από τη διακοπή της υποστήριξης για το Python 2.7, μια άλλη σημαντική αλλαγή που ξεχωρίζει από αυτόν τον νέο σταθερό κλάδο του Portage 3.0 ήταν η συμπερίληψη διαφόρων βελτιστοποιήσεων που επέτρεψαν Κάντε πιο γρήγορους υπολογισμούς (μεταξύ 50% και 60%) σχετίζεται με τον καθορισμό εξαρτήσεων.

Είναι ενδιαφέρον ότι ορισμένοι προγραμματιστές πρότειναν να ξαναγράψουν τον κώδικα επίλυσης εξάρτησης σε C / C ++ ή Go για να επιταχύνουν την εργασία τους, αλλά κατάφεραν να λύσουν το υπάρχον πρόβλημα με μεγάλη προσπάθεια.

Και το προφίλ του υπάρχοντος κώδικα έδειξε ότι τις περισσότερες φορές υπολογισμός είναι αφιερωμένο στην κλήση των λειτουργιών use_reduce και catpkgsplit με ένα επαναλαμβανόμενο σύνολο επιχειρημάτων (το άτομο που ηγήθηκε αυτής της εργασίας αναφέρει ότι για παράδειγμα η συνάρτηση catpkgsplit κλήθηκε 1 έως 5 εκατομμύρια φορές)

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

Επίσης, λόγω της ενημέρωσης κώδικα που παρέχεται από τον χρήστη, η ενημέρωση στην τελευταία έκδοση του Portage μπορεί να επιταχύνει σημαντικά τους υπολογισμούς εξάρτησης κατά 50-60%. Μας αρέσει να βλέπουμε την κοινότητά μας να συμμετέχει στο λογισμικό μας! Για περισσότερες λεπτομέρειες, ανατρέξτε σε αυτήν την ανάρτηση Reddit από το μέλος της κοινότητας που παρείχε την ενημέρωση κώδικα. Μείνετε υγιείς και συνεχίστε να μαγειρεύετε με το Gentoo!

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

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

Πέρασα λίγο χρόνο στο προφίλ του Portage με το cProfile και το vmprof για να καταλάβω ποια χαρακτηριστικά χρειάζονταν περισσότερο. Δημιούργησα επίσης μερικά flamegraphs από τα αποτελέσματα του προφίλ, τα οποία έμοιαζαν με αυτό. Αυτό που παρατήρησα ήταν ότι ορισμένες λειτουργίες, όπως use_reducecatpkgsplit, καλούνται πολύ συχνά με τα ίδια επιχειρήματα (όπως, 1 έως 5 εκατομμύρια φορές, για catpkgsplit). Έκανα μερικά πειράματα για να αποθηκεύσω προσωρινά τα αποτελέσματα αυτών των λειτουργιών σε υπαγόρευση και αφού είδα μερικές καλές ταχύτητες, υπέβαλα μια ενημερωμένη έκδοση κώδικα στη λίστα προγραμματιστών του Portage. Κάποιος πρότεινε τη χρήση του ενσωματωμένου Pythonlru_cache Αντίθετα, ο διακόπτης λειτουργίας, αλλά διατίθεται μόνο σε Python 3.2 και νεότερη έκδοση

Από την άλλη πλευρά, η χρήση της προσωρινής μνήμης έχει μειώσει τη λειτουργία "emerge -uDvpU –with-bdeps = y @world" στο ThinkPad X220 από 5 λεπτά 20 δευτερόλεπτα σε 3 λεπτά 16 δευτερόλεπτα (63%). Οι δοκιμές σε άλλα συστήματα έχουν δείξει αύξηση απόδοσης τουλάχιστον 48%.

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

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


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

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

*

*

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