【问题标题】:Is there any way to improve Dart (dart2js) compile times?有什么方法可以提高 Dart (dart2js) 的编译时间吗?
【发布时间】:2016-02-09 04:24:09
【问题描述】:

我正在尝试从 TypeScript 迁移到 Dart。 TypeScript 几乎可以立即编译 - Dart 需要超过 5 秒来编译一个 Hello World 程序!我错过了什么吗?有什么办法可以改善吗?

【问题讨论】:

    标签: performance compilation dart dart2js


    【解决方案1】:

    在使用 Dart 进行开发时,这通常不是什么大问题,因为 Dartium 是 Chromium 的衍生产品,直接执行 Dart。

    仅用于测试与其他浏览器的兼容性和部署,需要构建到 JavaScript。

    pub serve Dart 开发 Web 服务器使用大量缓存进行 dart-to-js 即时编译,如果您在开发过程中需要使用非Dartium 浏览器。

    【讨论】:

    • 您的意思是“秒”吗?这不是 5 分钟,感谢上帝。
    • 抱歉,在您的问题中误读了这一点。 5 秒是 dart2js 的好时机。
    • 我已经检查了 Dartium,这似乎是一个真正的解决方案!当与pub serve 一起使用时,Dartium 仍将使用 Dart VM,不是吗?
    • 是的,pub serve 根据浏览器的请求提供 Dart 或转译的 JS 源代码。 dart.js 脚本标签在没有原生 Dart 支持的浏览器中请求 JS 源代码。
    • Dartium 目前比 Chromium 落后几个版本,因为正在进行更大的返工。最新版本将很快发布。
    【解决方案2】:

    TypeScript 是 JavaScript 的类型化超集,可编译为纯 JavaScript。
    所以它(ts 编译器)从高级编程语言翻译为低级编程语言。

    Dart 是一种开源、可扩展的编程语言,具有强大的库和运行时。
    所以它(dart2js 编译器)是一个源到源编译器(转译器),它将用一种编程语言编写的程序的源代码作为其输入,并以另一种编程语言生成等效的源代码。

    我认为这可以解释一切。

    【讨论】:

    • 好吧,Go 在 0.5 秒内编译了一个 Hello World……但我明白你的意思。
    • @cubuspl42 Go 编译器(as 和 Typescript)转换为低级编程语言。 Dart 编译器翻译成另一种高级编程语言。如果您尝试将 Go 源代码翻译成另一种语言(例如,Java 或 C#),那么这个过程将花费更多时间(与 Dart 翻译成 Javascript 时相同)。
    猜你喜欢
    • 2010-09-11
    • 1970-01-01
    • 2012-05-07
    • 2023-04-05
    • 2020-11-18
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多