是在静态编译的DART,或者是在运行时插入的,因为它被解析并加载到VM? 我正在尝试理解为什么添加特质为飞镖添加会导致内存中对象的形状发生变化,因此很好奇它现在如何加载代码。

问题描述 投票:0回答:1
在Windows/Mac/Linux之外,将DART环境放置到各个平台上有一些努力,但我还没有看到DART的机器语言编译器的实际直接。这并不意味着它们不存在,除了Linux Dart环境端口外,我还没有看到任何其他任何东西。

从飞镖faq

dart
1个回答
5
投票
Q。 Google为什么不构建一个字节码VM由多个构建 包括飞镖在内的语言?每种方法都有优势, 缺点,但我们觉得在飞镖的背景下,这很有意义 出于以下原因构建特定于语言的VM:

Google已经在多语言字节码上工作:LLVM BitCode pnacl.

即使字节码VM专门用于DART,语言VM将是 更简单,更快,因为它可以在更强的假设下起作用 - 因为 实例,结构化控制流。这些假设使 实施清洁器和优化更容易。

通用字节码VM会更大且较慢 概括假设并添加DART死亡的功能 代码:例如,具有共享堆的多线程。

非字节码VM确实是通用的;他们都做出假设 这种特权享有一些类别的语言。语言VM留下了更多的空间 为了改善VM并进行了深入的更改,以优化 语言。一些飞镖工程师写了一篇关于VM的文章 更详细的问题。

在[编译飞镖到高效的表现方面都很好 机器代码]

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.