Dart 2.15 vine cu grupuri izolate, îmbunătățiri ale timpului de rulare și multe altele

Google a dezvăluit recent lansarea noua versiune a limbajului de programare Dart 2.15, care continuă dezvoltarea unei ramuri radical reproiectate a Dart 2 și care diferă de versiunea originală a limbajului Dart prin utilizarea tastării statice puternice (tipurile pot fi deduse automat, deci nu este necesară specificarea tipurilor, dar tastarea dinamică nu mai este utilizată și este inițial calculată, tipul este atribuit variabilă și apoi se aplică o verificare strictă a tipului).

În această nouă versiune au fost implementate diverse îmbunătățiri și mai ales introducerea unor noi caracteristici precum grupuri izolate și, de asemenea, soluții pentru unele vulnerabilități detectate.

Principalele caracteristici noi ale Dart 2.15

În această nouă versiune a Dart 2.15 instrumentele sunt furnizate pentru executarea rapidă în paralel a sarcinilor cu izolarea controlerului.

Pe lângă asta în sistemele multi-core, timpul de rulare Dart, în mod implicit, rulează codul de aplicație pe un nucleu CPU și folosește alte nuclee pentru a efectua sarcini de sistem cum ar fi I/O asincron, scrierea în fișiere sau efectuarea de apeluri în rețea.

O altă noutate pe care o introduce Dart 2.15 este un nou concept, grupuri izolate, (grupuri izolate) permițând accesul partajat la diferite structuri interne de date în izolate aparținând aceluiași grup, ceea ce poate reduce semnificativ cheltuielile generale atunci când comunicați cu agenții dintr-un grup. De exemplu, pornirea unei izolări suplimentare pe un pool existent este de 100 de ori mai rapidă și necesită de 10 până la 100 de ori mai puțină memorie decât inițierea unei izolări separate, eliminând necesitatea inițializării structurilor de date ale programului.

În ciuda faptului că în blocuri izolate dintr-un grup, accesul partajat la obiectele mutabile este încă interzis, grupurile folosesc memoria dinamică partajată, accelerând semnificativ transferul de obiecte de la un bloc la altul, fără a fi nevoie de operațiuni de copiere care necesită mult resurse.

În noua versiune, este, de asemenea, permis să treacă rezultatul lucrului controlerului atunci când se apelează Isolate.exit (). pentru a transmite date către blocul principal de izolare fără a efectua operații de copiere. În plus, a fost realizată optimizarea mecanismului de transmitere a mesajelor: mesajele mici și medii sunt acum procesate de aproximativ 8 ori mai rapid. Obiectele care pot fi trecute între izolate folosind apelul SendPort.send () includ diferite tipuri de funcții, închideri și urme de stivă.

În instrumentele pentru crearea de pointeri la funcțiile individuale din alte obiecte, restricțiile privind crearea unor astfel de indicatori au fost eliminate în codul constructorului, care poate fi util la crearea interfețelor bazate pe bibliotecă Flutură.

Bibliotecă dart: core are suport îmbunătățit pentru enumerare, de exemplu, acum puteți genera o valoare șir din fiecare valoare de enumerare folosind metoda „.name”, obțineți valori după nume sau potriviți perechi de valori.

De asemenea, se evidențiază faptul că a fost implementată o tehnică de compresie pointerpermite utilizarea unei reprezentări mai compacte a pointerilor în medii pe 64 de biți dacă spațiul de adresă de 32 de biți este suficient pentru adresare (nu se utilizează mai mult de 4 GB de memorie). Testele au arătat că o astfel de optimizare reduce dimensiunea heap-ului cu aproximativ 10%. În Flutter SDK, noul mod este deja activat pentru Android în mod implicit și este planificat să fie activat pentru iOS într-o versiune viitoare.

de asemenea se remarcă faptul că depozitul pub.dev are acum capacitatea de a revoca o versiune deja publicată a unui pachet, de exemplu, în cazul erorilor sau vulnerabilităților periculoase.

Dintre alte schimbări care ies în evidență:

  • Protecție suplimentară împotriva vulnerabilităților (CVE-2021-22567) cauzate de utilizarea caracterelor Unicode care modifică ordinea de afișare în cod.
  • S-a remediat o vulnerabilitate (CVE-2021-22568) care putea uzurpa identitatea unui alt utilizator pub.dev la publicarea pachetelor pe un server terță parte care acceptă jetoane de acces oauth2 de la pub.dev.
  • SDK-ul Dart include instrumente pentru depanare și analiza performanței (DevTools), care au fost livrate anterior într-un pachet separat.
  • Au fost adăugate instrumente la comanda „dart pub” și depozitele de pachete pub.dev pentru a urmări eliberarea accidentală de informații sensibile, de exemplu, lăsând acreditări pentru sistemele de integrare continuă și mediile cloud în cadrul pachetului.
  • Dacă se găsesc astfel de scurgeri, comanda „dart pub publish” se va opri cu un mesaj de eroare. În cazul unei alarme false, este posibil să săriți peste verificare prin lista albă.

Fuente: https://medium.com/


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: AB Internet Networks 2008 SL
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.