我在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服务器或客户端VM)
-XX:+ UseSerialGC或-XX:+ UseParallelGC(或其他非串行GC)
运行Flex编译器时,-server始终优于-client约30%.-XX:+ UseParallelGC打开并行垃圾收集器.适用于多核计算机,当计算机仍有CPU周期备用时.
您可能还想查看HellFire Compiler Daemon(http://bytecode-workshop.com/).它使用多个处理器内核同时编译多个Flex应用程序.您还可以通过套接字在第二台机器上运行编译器(假设您的第二台机器具有更快的CPU和更多的内存).
在我看来,使用比库更多的模块并使用HFCD.
希望这可以帮助.
-Clement
只需要mxmlc
在命令行上使用就可以添加编译器标志.在Flex Navigator中右键单击您的项目,在出现的对话框中选择Properties,然后选择Flex Compiler.你可以添加任何额外的编译器标志.
不确定是否有很多工作要做,更多的代码意味着更多的编译时间,这就是它的方式.如果您没有进行发布版本(或者在Flex Builder中调用它),那么您的编译器设置不太可能包括在内optimize
.更好的选择是-incremental
(只重新编译已更改的部分)和-keep-generated-actionscript
(这会阻止编译器删除它从应用程序的MXML文件生成的ActionScript文件).
mxmlc
与Flex Builder相比,我更喜欢在命令行上使用(通过Ant).虽然我不认为后者编程速度较慢,但在各方面都感觉更加迟钝.使用Ant还可以在构建和条件编译时完成编译(如果源代码实际已更改,则只编译SWF或SWC).查看我的博客文章了解更多相关信息.
您可以尝试的是Flex Compiler Shell,这是另一个可以加快速度的命令行工具.基本上它试图在构建之间尽可能地保留在内存中,因此不需要等待JVM启动之类的事情(Flex编译器是Java应用程序).另一方面,这就是Flex Builder无论如何都要做的事情.
除了已经提到的建议之外,请关闭您未打开的任何项目.
在Navigator视图中单击Project,然后选择"Close Unrelated Projects".
根据您打开的项目数量,这可以显着改善编译时间以及所有性能.
迈克室
mesh@adobe.com