Dart 2.15 đến với các nhóm biệt lập, cải tiến thời gian chạy và hơn thế nữa

Google gần đây đã công bố sự ra mắt của phiên bản mới của ngôn ngữ lập trình Dart 2.15, tiếp tục phát triển một nhánh được thiết kế lại hoàn toàn của Dart 2 và điều đó khác với phiên bản gốc của ngôn ngữ Dart bằng cách sử dụng kiểu nhập tĩnh mạnh mẽ (kiểu có thể được suy ra tự động, vì vậy không cần chỉ định kiểu, nhưng kiểu nhập động không còn được sử dụng nữa và được tính toán ban đầu, kiểu được gán cho biến và sau đó kiểm tra kiểu nghiêm ngặt được áp dụng).

Trong phiên bản mới này, nhiều cải tiến khác nhau đã được thực hiện và trên hết là giới thiệu một số tính năng mới như các nhóm bị cô lập và cũng có các giải pháp cho một số lỗ hổng được phát hiện.

Các tính năng mới chính của Dart 2.15

Trong phiên bản mới này của Dart 2.15 các công cụ được cung cấp để thực hiện song song nhanh chóng các tác vụ với sự cách ly của bộ điều khiển.

bên cạnh đó trong các hệ thống đa lõi, thời gian chạy Dart, theo mặc định, chạy mã ứng dụng trên lõi CPU và sử dụng các lõi khác để thực hiện các tác vụ hệ thống chẳng hạn như I / O không đồng bộ, ghi vào tệp hoặc thực hiện cuộc gọi mạng.

Một điểm mới khác mà Dart 2.15 giới thiệu là một khái niệm mới, nhóm biệt lập, (tách nhóm) cho phép chia sẻ quyền truy cập vào các cấu trúc dữ liệu nội bộ khác nhau trong các phân lập thuộc cùng một nhóm, điều này có thể giảm đáng kể chi phí khi giao tiếp với các đại lý trong một nhóm. Ví dụ: bắt đầu cách ly bổ sung trên một nhóm hiện có nhanh hơn 100 lần và yêu cầu bộ nhớ ít hơn từ 10 đến 100 lần so với việc khởi tạo một vùng cách ly riêng biệt, loại bỏ nhu cầu khởi tạo cấu trúc dữ liệu của chương trình.

Mặc dù thực tế là trong các khối biệt lập trong một nhóm, quyền truy cập được chia sẻ vào các đối tượng có thể thay đổi vẫn bị cấm, các nhóm sử dụng bộ nhớ động được chia sẻ, tăng tốc đáng kể việc chuyển các đối tượng từ khối này sang khối khác mà không cần đến các thao tác sao chép tốn nhiều tài nguyên.

Trong phiên bản mới, nó cũng được phép chuyển kết quả của công việc điều khiển khi Isolate.exit () được gọi để truyền dữ liệu đến khối cách ly chính mà không cần thực hiện các thao tác sao chép. Ngoài ra, việc tối ưu hóa cơ chế truyền thông điệp đã được thực hiện: các thông điệp vừa và nhỏ hiện được xử lý nhanh hơn khoảng 8 lần. Các đối tượng có thể được chuyển giữa các vùng cách ly bằng cách sử dụng lệnh gọi SendPort.send () bao gồm nhiều loại hàm, bao đóng và dấu vết ngăn xếp.

Trong các công cụ để tạo con trỏ đến các chức năng riêng lẻ trong các đối tượng khác, các hạn chế về việc tạo các con trỏ như vậy đã bị loại bỏ trong mã khởi tạo, có thể hữu ích khi tạo giao diện dựa trên thư viện Chớp cánh.

Thư viện dart: core đã cải thiện hỗ trợ enum, ví dụ: bây giờ bạn có thể tạo một giá trị chuỗi từ mỗi giá trị liệt kê bằng cách sử dụng phương thức ".name", lấy giá trị theo tên hoặc so khớp các cặp giá trị.

Nó cũng được nhấn mạnh rằng một kỹ thuật nén con trỏ đã được thực hiệnĐó cho phép sử dụng biểu diễn con trỏ nhỏ gọn hơn trong môi trường 64-bit nếu không gian địa chỉ 32-bit đủ để định địa chỉ (không sử dụng bộ nhớ quá 4 GB). Các thử nghiệm đã chỉ ra rằng việc tối ưu hóa như vậy làm giảm kích thước đống khoảng 10%. Trong Flutter SDK, chế độ mới đã được bật cho Android theo mặc định và dự kiến ​​sẽ bật chế độ này cho iOS trong một bản phát hành trong tương lai.

Cũng thế lưu ý rằng kho lưu trữ pub.dev hiện có khả năng thu hồi phiên bản đã được xuất bản của một gói, ví dụ, trong trường hợp có lỗi hoặc lỗ hổng nguy hiểm.

Của những thay đổi khác nổi bật:

  • Bảo vệ bổ sung chống lại lỗ hổng bảo mật (CVE-2021-22567) do việc sử dụng các ký tự Unicode làm thay đổi thứ tự hiển thị trong mã.
  • Đã sửa một lỗ hổng (CVE-2021-22568) có thể mạo danh một người dùng pub.dev khác khi xuất bản các gói lên máy chủ của bên thứ ba chấp nhận mã thông báo truy cập oauth2 từ pub.dev.
  • SDK Dart bao gồm các công cụ để gỡ lỗi và phân tích hiệu suất (DevTools), trước đây đã được phân phối trong một gói riêng biệt.
  • Các công cụ đã được thêm vào lệnh "dart pub" và kho lưu trữ gói pub.dev để theo dõi việc phát hành ngẫu nhiên thông tin nhạy cảm, ví dụ: để lại thông tin xác thực cho các hệ thống tích hợp liên tục và môi trường đám mây trong gói.
  • Nếu những rò rỉ như vậy được tìm thấy, lệnh "dart pub Publishing" sẽ dừng lại với một thông báo lỗi. Trong trường hợp báo động giả, có thể bỏ qua việc kiểm tra thông qua danh sách trắng.

Fuente: https://medium.com/


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.