Dumating ang Dart 2.15 kasama ang mga nakahiwalay na grupo, mga pagpapahusay sa runtime at higit pa

Inihayag kamakailan ng Google ang paglulunsad ng bagong bersyon ng programming language Dart 2.15, na nagpapatuloy sa pagbuo ng isang radikal na muling idinisenyong sangay ng Dart 2 at iyon ay naiiba sa orihinal na bersyon ng wikang Dart sa pamamagitan ng paggamit ng malakas na static na pag-type (maaaring awtomatikong mahinuha ang mga uri, kaya hindi kinakailangan na tukuyin ang mga uri, ngunit hindi na ginagamit ang dynamic na pag-type at sa una ay kinakalkula, ang uri ay itinalaga sa variable at pagkatapos ay inilapat ang isang mahigpit na uri ng pagsusuri).

Sa bagong bersyon na ito, iba't ibang mga pagpapahusay ang ipinatupad at higit sa lahat ang pagpapakilala ng ilang bagong feature gaya ng mga nakahiwalay na grupo at mga solusyon din sa ilang nakitang mga kahinaan.

Pangunahing mga bagong tampok ng Dart 2.15

Sa bagong bersyon na ito ng Dart 2.15 Ang mga tool ay ibinibigay para sa mabilis na parallel execution ng mga gawain na may controller isolation.

Bukod doon sa mga multi-core system, ang runtime Dart, bilang default, nagpapatakbo ng application code sa isang CPU core at gumagamit ng iba pang mga core upang magsagawa ng mga gawain sa system tulad ng asynchronous na I / O, pagsulat sa mga file, o paggawa ng mga tawag sa network.

Ang isa pang bagong bagay na ipinakilala ng Dart 2.15 ay isang bagong konsepto, ilang grupo, (ihiwalay ang mga pangkat) nagbibigay-daan sa nakabahaging pag-access sa iba't ibang istruktura ng panloob na data sa mga hiwalay na kabilang sa parehong grupo, na maaaring makabuluhang bawasan ang overhead kapag nakikipag-usap sa mga ahente sa isang grupo. Halimbawa, ang pagsisimula ng karagdagang paghihiwalay sa isang umiiral na pool ay 100 beses na mas mabilis at nangangailangan ng 10 hanggang 100 beses na mas kaunting memory kaysa sa pagsisimula ng isang hiwalay na paghihiwalay, na inaalis ang pangangailangang simulan ang mga istruktura ng data ng programa.

Sa kabila ng katotohanan na sa ilang mga bloke sa isang grupo, ipinagbabawal pa rin ang nakabahaging pag-access sa mga nababagong bagay, ang mga grupo ay gumagamit ng nakabahaging dynamic na memorya, makabuluhang pinabilis ang paglipat ng mga bagay mula sa isang bloke patungo sa isa pa nang hindi nangangailangan ng mga operasyon ng pagkopya na masinsinang mapagkukunan.

Sa bagong bersyon, pinapayagan din itong ipasa ang resulta ng trabaho ng controller kapag tinawag ang Isolate.exit (). upang ipasa ang data sa pangunahing bloke ng paghihiwalay nang hindi nagsasagawa ng mga operasyon ng pagkopya. Bilang karagdagan, ang pag-optimize ng mekanismo ng paghahatid ng mensahe ay isinagawa: ang maliliit at katamtamang mga mensahe ay pinoproseso na ngayon nang humigit-kumulang 8 beses na mas mabilis. Ang mga bagay na maaaring ipasa sa pagitan ng mga isolates gamit ang SendPort.send () na tawag ay kinabibilangan ng iba't ibang uri ng mga function, pagsasara, at stack traces.

Sa mga tool para sa paglikha ng mga pointer sa mga indibidwal na pag-andar sa iba pang mga bagay, ang mga paghihigpit sa paglikha ng mga naturang pointer ay inalis na sa constructor code, na maaaring maging kapaki-pakinabang kapag lumilikha ng mga interface na nakabatay sa library Kumaway.

Library dart: pinahusay ng core ang suporta sa enum, halimbawa, maaari ka na ngayong bumuo ng string value mula sa bawat enumeration value gamit ang ".name" na paraan, kumuha ng mga value ayon sa pangalan, o tumugma sa mga pares ng value.

Na-highlight din iyon isang pointer compression technique ang ipinatupadNa nagbibigay-daan na gumamit ng mas compact na representasyon ng mga pointer sa 64-bit na kapaligiran kung ang 32-bit address space ay sapat para sa addressing (hindi hihigit sa 4 GB ng memorya ang ginagamit). Ipinakita ng mga pagsubok na binabawasan ng naturang pag-optimize ang laki ng heap ng humigit-kumulang 10%. Sa Flutter SDK, naka-enable na ang bagong mode para sa Android bilang default at pinlano itong i-enable para sa iOS sa isang release sa hinaharap.

Din ito ay nabanggit na ang pub.dev repository ay mayroon na ngayong kakayahan upang bawiin ang isang nai-publish na bersyon ng isang pakete, halimbawa, sa kaso ng mga mapanganib na bug o kahinaan.

Ng iba pang mga pagbabago matindi yan:

  • Karagdagang proteksyon laban sa kahinaan (CVE-2021-22567) na dulot ng paggamit ng mga Unicode na character na nagbabago sa pagkakasunud-sunod ng pagpapakita sa code.
  • Inayos ang isang kahinaan (CVE-2021-22568) na maaaring magpanggap bilang isa pang user ng pub.dev kapag nagpa-publish ng mga package sa isang third-party na server na tumatanggap ng mga token ng access ng oauth2 mula sa pub.dev.
  • Kasama sa Dart SDK ang mga tool para sa pag-debug at pagtatasa ng pagganap (DevTools), na dati nang naihatid sa isang hiwalay na pakete.
  • Ang mga tool ay idinagdag sa command na "dart pub" at sa mga repositoryo ng package ng pub.dev upang subaybayan ang hindi sinasadyang paglabas ng sensitibong impormasyon, halimbawa, pag-iiwan ng mga kredensyal para sa tuluy-tuloy na integration system at cloud environment sa loob ng package.
  • Kung ang mga naturang pagtagas ay natagpuan, ang command na "dart pub publish" ay titigil sa isang mensahe ng error. Sa kaganapan ng isang maling alarma, posibleng laktawan ang tseke sa pamamagitan ng puting listahan.

Fuente: https://medium.com/


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.