关于 macos:对于加快 Flex Builder 3 中的编译时间有什么建议吗?

关于 macos:对于加快 Flex Builder 3 中的编译时间有什么建议吗?

Any advice for speeding up the compile time in Flex Builder 3?

我在 Mac 上运行 Flex Builder 3,随着项目的增长 - 编译时间越来越长。我正在使用一些 SWC,并且有相当多的代码,但它不应该每天花费几分钟来构建和崩溃吗?


首先,评论一些回复:

  • Flex Builder 中不需要显式指定-incremental,因为它默认使用增量编译。

  • -keep-generated-actionscript 是一个性能杀手,因为它指示编译器在编译过程中写出为 MXML 组件生成的 AS3 代码。编译过程中的文件 I/O 意味着不必要的暂停和低 CPU 利用率。

  • -optimize 会减慢链接速度,因为它指示链接器生成更小的 SWF。请注意,-optimize=true|false 对构建 SWC 没有任何影响,因为 SWC 是库并且必须未优化。

  • 我很少弄乱 JVM 设置,因为 JVM 非常了解它的工作,并且在运行时可以很好地调整自己。大多数人通过设置各种 GC 调整参数使事情变得更糟。也就是说,大多数人都理解并正确设置了 3 个设置以供他们使用:

  • -Xmx(最大堆大小)

    -server 或 -client(HotSpot 服务器或客户端虚拟机)

    -XX:UseSerialGC 或 -XX:UseParallelGC(或其他非串行GC)

    在运行 Flex 编译器时,

    -server 始终优于 -client 约 30%。
    -XX:UseParallelGC 开启并行垃圾收集器。非常适合多核计算机以及当计算机仍有 CPU 周期可用时。

    您可能还想查看 HellFire 编译器守护程序 (http://bytecode-workshop.com/)。它使用多个处理器内核同时编译多个 Flex 应用程序。您还可以通过套接字在第二台机器上运行编译器(假设您的第二台机器具有更快的 CPU 和更多内存)。

    在我看来,使用比库更多的模块并使用 HFCD。

    希望这会有所帮助。

    -克莱门特


    没有必要在命令行上使用 mxmlc 来添加编译器标志。在 Flex Navigator 中右键单击您的项目,选择 Properties,然后在出现的对话框中选择 Flex Compiler。在那里您可以添加任何额外的编译器标志。

    不确定有很多事情要做,更多的代码意味着更多的编译时间,事实就是这样。如果您不进行发布构建(或在 Flex Builder 中调用的任何内容),那么您的编译器设置不太可能一开始就包含 optimize。更好的选择是 -incremental(它只重新编译已更改的部分)和 -keep-generated-actionscript(它阻止编译器删除它从应用程序的 MXML 文件生成的 ActionScript 文件)。

    与 Flex Builder 相比,我更喜欢在命令行上使用 mxmlc(通过 Ant)。虽然我不认为后者编译速度慢,但各方面都感觉比较迟钝。使用 Ant 不仅可以在构建时进行编译,还可以进行条件编译(仅在源代码实际更改时才编译 SWF 或 SWC)。查看我的博客文章以获取更多信息。

    您可以尝试使用 Flex Compiler Shell,这是另一个可以加快处理速度的命令行工具。基本上,它会在构建之间尽可能多地保留内存,因此无需等待 JVM 启动(Flex 编译器是 Java 应用程序)之类的事情。另一方面,这正是 Flex Builder 所做的。


    除了已经提到的建议之外,请关闭您打开但不使用的所有项目。

    在导航器视图中单击项目并选择"关闭不相关的项目"。

    根据您打开的项目数量,这可以显着改善编译时间以及性能。

    麦克室

    mesh@adobe.com


    我创建了带有工作空间的 RAM 磁盘,它最多可以节省 10% 的编译时间。不多,但有些东西。


    编译时间缓慢通常是由大量嵌入资源([Embed] 或@Embed)造成的。

    本文中的选项 2 可能会对您有所帮助:[http://www.rogue-development.com/blog2/2007/11/slow-flex-builder-compile-and-refresh-solution-modules/]


    如果可能的话,您希望计算机上至少有 4 个演出,并确保覆盖 eclipse/flexbuilder 为应用程序提供的默认内存设置。

    如果您不确定如何执行此操作,您可以在 /Applications 中找到 flexbuilder 应用程序,右键单击并选择"显示包内容"。然后进入内容文件并编辑 eclipse.ini 文件。编辑该文件的内存设置至少为:

    1
    -vmargs -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=128m

    进入 eclipse/flexbuilder 首选项并检查 Windows-Preferences-General 下的"显示堆状态"框也是值得的(这是在带有 FB 插件的 Eclipse 中,我假设它也适用于独立的 FB)。

    这会在窗口的右下方显示当前内存,并且有一个小垃圾桶图标,以便您可以强制进行垃圾回收。

    我还建议您在文件更改时关闭项目的自动构建(您可以使用 cmd-B 强制构建)。

    我们有一个庞大的项目,其中包含相当多的模块文件,并且这些步骤在 FlexBuilder 3 中的性能还不错。


    SDK 4.x.x 引入了愚蠢的错误(请参阅 Adob??e 错误系统,问题 FB-27440),这导致使用 SVN 或 CVS 元数据的项目编译速度比使用 SDK 3.x.x 慢得多。关于如何修复,请参见此处。


    正如 Clement 所说,使用 HellFire 编译器守护进程。如果您的机器上有多个模块和更多 CPU 内核,它可以并行编译它们。另一种选择是使用提供相同功能的 IntelliJ(商业版)。


    我总是禁用 Flex 的"自动编译"。它编译太多,耗时太长,因此打断了我的工作。

    如果您有许多不同的项目文件并且所有这些都需要重新编译,但您还打开了其他项目并且不想总是在构建时关闭它们,您也可以使用 Eclipse Working集。

    很遗憾,默认的 Flex Navigator 不支持工作集。但是您可以使用 Window / Show View / ... 打开 Package Explorer。单击右上角的小白色向下箭头,然后选择 Top Level Elements: Working Sets。然后,您可以添加工作集(又名项目组)。每个项目都需要在至少一个工作集中("Other Projects" 是默认设置),但可以在多个工作集中。

    现在使用 Project / Build Working Set / ... 您可以指示 Eclipse 构建此工作集中的所有项目,但不构建其他项目。如果您怀疑您的项目引用有时会被破坏,这将特别有用 - 否则构建"最顶层"项目应该会自动触发后续构建。


    转到项目-属性-Flex 应用程序。列出的所有应用程序每次都会编译(即使您有默认设置)。如果您删除除默认值之外的所有内容(不用担心,它不会删除实际文件),它只会编译默认应用程序。这为我带来了显着的加速。如果您更改默认应用程序,它会将其添加到 Flex 应用程序列表中 - 添加到您的编译时间。您需要维护此列表以获得最快的编译速度。


    您可以使用 WORKING SETS 仅编译一组组件,这些组件是您正在更改的应用程序的一部分,而不是整个项目

    http://livedocs.adobe.com/flex/3/html/help.html?content=build_6.html


    我不使用 Flex Builder,但我每天都使用 Flex SDK 编译器,我浪费了大量时间等待 MXMLC 编译器完成其工作,直到找到 Flex Compiler SHell:

    http://blog.zarate.tv/2008/12/07/theres-something-called-flex-compiler-shell/

    虽然理论上 Flex Builder 已经使用了这种优化,但可能值得一试。


    您可能想要探索 Flex SDK 中的命令行编译器 mxmlc。我记得,Flex Builder 3 似乎隐藏了所有编译器细节,但也许您可以附加一些参数来帮助您加快编译速度。

    例如,您可能想设置 optimize=false 来跳过优化字节码的步骤(可能会减少编译时间)?这当然是以实际应用程序的性能和文件大小为代价的。

    有关 mxmlc 的更多文档可在以下位置找到:http://livedocs.adobe.com/flex/3/html/compilers_13.html。

    祝你好运!


    通常第一次构建需要的时间最长,然后就很快了。那是使用带有 core 2 duo 的 Vista x64。

    否则,我几乎可以肯定英特尔酷睿 i7 至尊版 965 3.2GHz 升级处理器会很好地加速您的 Flex 构建 .. :) :) :)


    推荐阅读

      linux命令创建项目组?

      linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文

      linux开启运行命令?

      linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,lin

      linux命令输出加时间?

      linux命令输出加时间?,时间,系统,名称,设备,命令,信息,管理,标准,数字,百度,l

      linux时间命令修改?

      linux时间命令修改?,时间,系统,信息,命令,大陆,国家,终端,时分,时区,日期,lin

      linux编译连接命令?

      linux编译连接命令?,系统,代码,环境,工具,文件,资料,电脑,百度,终端,命令,在l

      复制项目的linux命令?

      复制项目的linux命令?,系统,项目,文件,命令,目录,源文件,语法,选项,目标,功

      linux命令行看时间?

      linux命令行看时间?,时间,系统,信息,发行,单位,标准,命令,日期,选项,终端,如

      linux命令时间转换?

      linux命令时间转换?,时间,系统,命令,信息,国家,大陆,概念,终端,时区,时分,Lin

      linux命令运行代码?

      linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Lin

      linux内核编译命令?

      linux内核编译命令?,系统,软件,环境,电脑,内核,最新,下来,官网,体系,名字,在l

      linux时间命令教程?

      linux时间命令教程?,时间,系统,信息,国家,电脑,大陆,标准,中国,命令,终端,LIN

      linux命令项目部署?

      linux命令项目部署?,项目,服务,环境,软件,系统,代理,管理,统一,做好,业务,怎

      linux命令运行脚本?

      linux命令运行脚本?,代码,系统,工作,设计,状态,命令,脚本,文件,目录,终端,运

      linux上运行的命令?

      linux上运行的命令?,系统,工作,软件,网络,地址,信息,情况,命令,灵活,基础知

      linux怎么运行命令?

      linux怎么运行命令?,系统,工作,首页,工具,终端,地址,命令,信息,电脑,情况,怎

      linux右击运行命令?

      linux右击运行命令?,系统,工作,设备,标准,首页,发行,电脑,终端,命令,文件,lin

      linux部署项目的命令?

      linux部署项目的命令?,项目,系统,设备,环境,工作,基础,传播,信息,标准,代码,L

      linux项目常用命令?

      linux项目常用命令?,工作,地址,系统,信息,管理,项目,命令,目录,标准,网络,lin

      linux项目更新命令?

      linux项目更新命令?,系统,信息,网络,地址,网站,通信,管理,时间,项目,命令,lin

      linux常用命令查时间?

      linux常用命令查时间?,时间,系统,工作,信息,地址,网络,命令,管理,目录,常用