Dart 2.15 带有隔离组、运行时改进等

谷歌最近推出了 新版本的编程语言 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:核心改进了枚举支持, 例如,您现在可以使用“.name”方法从每个枚举值生成一个字符串值,按名称获取值,或匹配值对。

还强调了 已实现指针压缩技术允许在 64 位环境中使用更紧凑的指针表示 如果 32 位地址空间足以寻址(使用不超过 4 GB 的内存)。 测试表明,这种优化将堆大小减少了大约 10%。 在 Flutter SDK 中,新模式已经默认为 Android 启用,并计划在未来的版本中为 iOS 启用。

进一步 请注意,pub.dev 存储库现在可以撤销已发布的版本 例如,在存在危险错误或漏洞的情况下。

其他变化 脱颖而出:

  • 针对因使用 Unicode 字符更改代码中的显示顺序而导致的漏洞 (CVE-2021-22567) 的额外保护。
  • 修复了一个漏洞 (CVE-2021-22568),当将包发布到接受来自 pub.dev 的 oauth2 访问令牌的第三方服务器时,该漏洞可能会冒充另一个 pub.dev 用户。
  • Dart SDK 包括用于调试和性能分析的工具 (DevTools),这些工具以前在单独的包中提供。
  • 工具被添加到“dart pub”命令和 pub.dev 包存储库中以跟踪敏感信息的意外发布,例如在包内留下持续集成系统和云环境的凭据。
  • 如果发现此类泄漏,“dart pub publish”命令将停止并显示错误消息。 如果发生误报,可以通过白名单跳过检查。

数据来源: https://medium.com/


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。