Dart 2.15 มาถึงแล้วพร้อมกลุ่มแยก การปรับปรุงรันไทม์ และอื่นๆ

Google เพิ่งเปิดตัวการเปิดตัว เวอร์ชั่นใหม่ของภาษาโปรแกรม Dart 2.15 ซึ่งยังคงพัฒนาสาขา Dart 2 . ที่ออกแบบใหม่อย่างรุนแรง และที่แตกต่างจากภาษา Dart เวอร์ชันดั้งเดิมโดยใช้การพิมพ์แบบสแตติกอย่างแรง (ประเภทสามารถอนุมานได้โดยอัตโนมัติจึงไม่จำเป็นต้องระบุประเภท แต่การพิมพ์แบบไดนามิกจะไม่ใช้อีกต่อไปและถูกคำนวณในขั้นต้นประเภทถูกกำหนดให้กับ ตัวแปรแล้วใช้การตรวจสอบประเภทที่เข้มงวด)

ในเวอร์ชันใหม่นี้ มีการนำการปรับปรุงต่างๆ มาใช้ และเหนือสิ่งอื่นใดคือการแนะนำคุณลักษณะใหม่บางอย่าง เช่น กลุ่มที่แยกออกมา และการแก้ปัญหาช่องโหว่ที่ตรวจพบ

คุณสมบัติใหม่หลักของ Dart 2.15

ในเวอร์ชันใหม่ของ Dart 2.15 มีเครื่องมือสำหรับการทำงานแบบคู่ขนานอย่างรวดเร็วด้วยการแยกตัวควบคุม

นอกเหนือจากนั้น ในระบบมัลติคอร์ รันไทม์ โผโดยค่าเริ่มต้น รันรหัสแอปพลิเคชันบนแกน CPU และใช้แกนอื่นเพื่อทำงานของระบบ เช่น Asynchronous I/O, การเขียนลงไฟล์, หรือการโทรในเครือข่าย.

ความแปลกใหม่อีกอย่างที่ Dart 2.15 แนะนำคือแนวคิดใหม่ กลุ่มแยก (แยกกลุ่ม) ช่วยให้เข้าถึงโครงสร้างข้อมูลภายในต่างๆ ร่วมกันได้ แยกจากกลุ่มเดียวกัน ซึ่งสามารถลดค่าใช้จ่ายได้อย่างมากเมื่อสื่อสารกับตัวแทนในกลุ่ม. ตัวอย่างเช่น การเริ่มต้นการแยกเพิ่มเติมในพูลที่มีอยู่จะเร็วขึ้น 100 เท่า และต้องการหน่วยความจำน้อยกว่าการเริ่มต้นการแยกแบบแยก 10 ถึง 100 เท่า ทำให้ไม่จำเป็นต้องเริ่มต้นโครงสร้างข้อมูลโปรแกรม

แม้ว่าในบล็อกที่แยกจากกันในกลุ่ม ยังคงห้ามการเข้าถึงวัตถุที่ไม่แน่นอนร่วมกัน กลุ่มต่างๆ ใช้หน่วยความจำไดนามิกที่ใช้ร่วมกันช่วยเพิ่มความเร็วในการถ่ายโอนวัตถุจากบล็อกหนึ่งไปยังอีกบล็อกหนึ่งโดยไม่จำเป็นต้องดำเนินการคัดลอกที่ใช้ทรัพยากรมาก

ในเวอร์ชันใหม่ นอกจากนี้ยังได้รับอนุญาตให้ผ่านผลงานของตัวควบคุมเมื่อเรียก Isolate.exit () เพื่อส่งข้อมูลไปยังบล็อกการแยกหลักโดยไม่ต้องดำเนินการคัดลอก นอกจากนี้ ยังได้ดำเนินการปรับกลไกการส่งข้อความให้เหมาะสมที่สุด: ขณะนี้ข้อความขนาดเล็กและขนาดกลางได้รับการประมวลผลเร็วขึ้นประมาณ 8 เท่า ออบเจ็กต์ที่สามารถส่งระหว่างไอโซเลทได้โดยใช้การเรียก SendPort.send () ประกอบด้วยฟังก์ชัน การปิด และสแต็กเทรซประเภทต่างๆ

ในเครื่องมือสร้างพอยน์เตอร์ กับแต่ละหน้าที่ในอ็อบเจกต์อื่นๆ ข้อจำกัดในการสร้างตัวชี้ดังกล่าวถูกลบออก ในรหัสตัวสร้างซึ่ง จะมีประโยชน์เมื่อสร้างอินเทอร์เฟซตามไลบรารี กระพือปีก

ห้องสมุด dart: core ได้ปรับปรุงการรองรับ enum ตัวอย่างเช่น คุณสามารถสร้างค่าสตริงจากค่าการแจงนับแต่ละค่าโดยใช้เมธอด ".name" รับค่าตามชื่อ หรือจับคู่ค่าที่ตรงกัน

นอกจากนี้ยังมีการเน้นย้ำว่า มีการนำเทคนิคการบีบอัดตัวชี้มาใช้ที่ อนุญาตให้ใช้การแสดงพอยน์เตอร์ที่กะทัดรัดยิ่งขึ้นในสภาพแวดล้อม 64 บิต หากพื้นที่แอดเดรส 32 บิตเพียงพอสำหรับการกำหนดแอดเดรส (ใช้หน่วยความจำไม่เกิน 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 เพื่อติดตามการเปิดเผยข้อมูลที่สำคัญโดยไม่ได้ตั้งใจ เช่น การปล่อยข้อมูลประจำตัวสำหรับระบบการรวมอย่างต่อเนื่องและสภาพแวดล้อมคลาวด์ภายในแพ็กเกจ
  • หากพบการรั่วไหลดังกล่าว คำสั่ง "dart pub publish" จะหยุดพร้อมข้อความแสดงข้อผิดพลาด ในกรณีที่มีสัญญาณเตือนผิดพลาด คุณสามารถข้ามการตรวจสอบผ่านรายการสีขาวได้

Fuente: https://medium.com/


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา