12

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

4

14 回答 14

10

首先,评论一些回应:

  1. 无需在 Flex Builder 中显式指定 -incremental,因为它默认使用增量编译。

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

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

  4. 我很少弄乱 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。

希望这可以帮助。

-克莱门特

于 2010-04-14T18:42:35.277 回答
8

无需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 所做的。

于 2008-08-29T16:13:46.387 回答
5

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

在 Navigator 视图中单击 Project,然后选择“Close Unrelated Projects”。

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

迈克室

网格@adobe.com

于 2008-09-15T22:43:19.817 回答
4

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

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

于 2008-08-29T11:14:26.167 回答
4

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

于 2009-10-26T08:44:04.390 回答
2

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

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

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

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

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

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

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

于 2009-01-16T06:48:36.873 回答
1

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

于 2009-01-15T18:35:38.117 回答
1

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

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

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

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

于 2009-11-03T23:29:09.110 回答
1

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

于 2010-08-15T09:04:28.607 回答
1

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

于 2010-12-17T16:05:03.243 回答
0

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

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

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

祝你好运!

于 2008-08-29T05:40:50.977 回答
0

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

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

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

于 2009-01-16T08:07:34.610 回答
0

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

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

于 2013-08-08T15:26:10.650 回答
-1

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

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

于 2009-01-16T06:59:06.277 回答