首页 / 知识

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

2023-04-13 13:59:00

关于 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 构建 .. :) :) :)


    编译运行项目有什么

    最新内容

    相关内容

    热门文章

    推荐文章

    标签云

    猜你喜欢