Το Dart 2.15 φτάνει με μεμονωμένες ομάδες, βελτιώσεις χρόνου εκτέλεσης και πολλά άλλα

Η Google αποκάλυψε πρόσφατα την κυκλοφορία του νέα έκδοση της γλώσσας προγραμματισμού Dart 2.15, το οποίο συνεχίζει την ανάπτυξη ενός ριζικά επανασχεδιασμένου κλάδου του Dart 2 και αυτό διαφέρει από την αρχική έκδοση της γλώσσας Dart με τη χρήση ισχυρής στατικής πληκτρολόγησης (οι τύποι μπορούν να συναχθούν αυτόματα, επομένως δεν απαιτείται καθορισμός τύπων, αλλά η δυναμική πληκτρολόγηση δεν χρησιμοποιείται πλέον και υπολογίζεται αρχικά, ο τύπος εκχωρείται στο μεταβλητή και στη συνέχεια εφαρμόζεται αυστηρός έλεγχος τύπου).

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

Κύρια νέα χαρακτηριστικά του Dart 2.15

Σε αυτή τη νέα έκδοση του Dart 2.15 παρέχονται εργαλεία για γρήγορη παράλληλη εκτέλεση εργασιών με απομόνωση ελεγκτή.

εκτός αυτού σε συστήματα πολλαπλών πυρήνων, ο χρόνος εκτέλεσης Dart, από προεπιλογή, εκτελεί τον κώδικα εφαρμογής σε έναν πυρήνα CPU και χρησιμοποιεί άλλους πυρήνες για την εκτέλεση εργασιών συστήματος όπως ασύγχρονη I/O, εγγραφή σε αρχεία ή πραγματοποίηση κλήσεων δικτύου.

Μια άλλη καινοτομία που εισάγει το Dart 2.15 είναι μια νέα ιδέα, απομονωμένες ομάδες, (απομόνωση ομάδων) επιτρέποντας την κοινή πρόσβαση σε διαφορετικές εσωτερικές δομές δεδομένων σε απομονώσεις που ανήκουν στην ίδια ομάδα, που μπορεί να μειώσει σημαντικά τα γενικά έξοδα κατά την επικοινωνία με πράκτορες σε μια ομάδα. Για παράδειγμα, η έναρξη μιας πρόσθετης απομόνωσης σε μια υπάρχουσα δεξαμενή είναι 100 φορές πιο γρήγορη και απαιτεί 10 έως 100 φορές λιγότερη μνήμη από την εκκίνηση μιας ξεχωριστής απομόνωσης, εξαλείφοντας την ανάγκη αρχικοποίησης των δομών δεδομένων του προγράμματος.

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

Στη νέα έκδοση, Επιτρέπεται επίσης να περάσει το αποτέλεσμα της εργασίας του ελεγκτή όταν καλείται Isolate.exit (). για να μεταβιβάσετε δεδομένα στο κύριο μπλοκ απομόνωσης χωρίς να εκτελέσετε λειτουργίες αντιγραφής. Επιπλέον, έχει πραγματοποιηθεί βελτιστοποίηση του μηχανισμού μετάδοσης μηνυμάτων: τα μικρά και μεσαία μηνύματα επεξεργάζονται πλέον περίπου 8 φορές πιο γρήγορα. Τα αντικείμενα που μπορούν να περάσουν μεταξύ απομονώσεων χρησιμοποιώντας την κλήση SendPort.send () περιλαμβάνουν διάφορους τύπους συναρτήσεων, κλεισίματα και ίχνη στοίβας.

Στα εργαλεία δημιουργίας δεικτών σε μεμονωμένες συναρτήσεις σε άλλα αντικείμενα, Οι περιορισμοί στη δημιουργία τέτοιων δεικτών έχουν καταργηθεί στον κώδικα κατασκευής, ο οποίος μπορεί να είναι χρήσιμο κατά τη δημιουργία διεπαφών που βασίζονται στη βιβλιοθήκη Ταραχή.

Βιβλιοθήκη dart: ο πυρήνας έχει βελτιωμένη υποστήριξη enum, για παράδειγμα, μπορείτε τώρα να δημιουργήσετε μια τιμή συμβολοσειράς από κάθε τιμή απαρίθμησης χρησιμοποιώντας τη μέθοδο ".name", να λάβετε τιμές ανά όνομα ή να αντιστοιχίσετε ζεύγη τιμών.

Τονίζεται επίσης ότι έχει εφαρμοστεί μια τεχνική συμπίεσης δείκτηΌτι επιτρέπει τη χρήση μιας πιο συμπαγούς αναπαράστασης δεικτών σε περιβάλλοντα 64 bit εάν ο χώρος διευθύνσεων των 32 bit επαρκεί για τη διευθυνσιοδότηση (δεν χρησιμοποιούνται περισσότερα από 4 GB μνήμης). Οι δοκιμές έχουν δείξει ότι μια τέτοια βελτιστοποίηση μειώνει το μέγεθος του σωρού κατά περίπου 10%. Στο Flutter SDK, η νέα λειτουργία είναι ήδη ενεργοποιημένη για Android από προεπιλογή και σχεδιάζεται να ενεργοποιηθεί για iOS σε μελλοντική κυκλοφορία.

Επίσης Σημειώνεται ότι το αποθετήριο pub.dev έχει πλέον τη δυνατότητα να ανακαλέσει μια ήδη δημοσιευμένη έκδοση ενός πακέτου, για παράδειγμα, σε περίπτωση επικίνδυνων σφαλμάτων ή τρωτών σημείων.

Του άλλες αλλαγές που ξεχωρίζουν:

  • Πρόσθετη προστασία έναντι ευπάθειας (CVE-2021-22567) που προκαλείται από τη χρήση χαρακτήρων Unicode που αλλάζουν τη σειρά εμφάνισης στον κώδικα.
  • Διορθώθηκε ένα θέμα ευπάθειας (CVE-2021-22568) που θα μπορούσε να μιμηθεί έναν άλλο χρήστη του pub.dev κατά τη δημοσίευση πακέτων σε διακομιστή τρίτου μέρους που δέχεται διακριτικά πρόσβασης oauth2 από το pub.dev.
  • Το Dart SDK περιλαμβάνει εργαλεία για εντοπισμό σφαλμάτων και ανάλυση απόδοσης (DevTools), τα οποία παραδόθηκαν προηγουμένως σε ξεχωριστό πακέτο.
  • Προστέθηκαν εργαλεία στην εντολή "dart pub" και στα αποθετήρια πακέτων pub.dev για την παρακολούθηση της τυχαίας απελευθέρωσης ευαίσθητων πληροφοριών, για παράδειγμα αφήνοντας διαπιστευτήρια για συστήματα συνεχούς ενοποίησης και περιβάλλοντα cloud εντός του πακέτου.
  • Εάν εντοπιστούν τέτοιες διαρροές, η εντολή "dart pub publish" θα σταματήσει με ένα μήνυμα σφάλματος. Σε περίπτωση ψευδούς συναγερμού, είναι δυνατή η παράλειψη του ελέγχου μέσω της λευκής λίστας.

πηγή: https://medium.com/


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

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

*

*

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