
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%。 您可能还想查看 HellFire 编译器守护程序 (http://bytecode-workshop.com/)。它使用多个处理器内核同时编译多个 Flex 应用程序。您还可以通过套接字在第二台机器上运行编译器(假设您的第二台机器具有更快的 CPU 和更多内存)。 在我看来,使用比库更多的模块并使用 HFCD。 希望这会有所帮助。 -克莱门特 没有必要在命令行上使用 不确定有很多事情要做,更多的代码意味着更多的编译时间,事实就是这样。如果您不进行发布构建(或在 Flex Builder 中调用的任何内容),那么您的编译器设置不太可能一开始就包含 与 Flex Builder 相比,我更喜欢在命令行上使用 您可以尝试使用 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 文件。编辑该文件的内存设置至少为: 进入 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 中的命令行编译器 例如,您可能想设置 有关 祝你好运! 通常第一次构建需要的时间最长,然后就很快了。那是使用带有 core 2 duo 的 Vista x64。 否则,我几乎可以肯定英特尔酷睿 i7 至尊版 965 3.2GHz 升级处理器会很好地加速您的 Flex 构建 .. :) :) :) |