flex osx flexbuilder compilation

¿Algún consejo para acelerar el tiempo de compilación en Flex Builder 3?



osx flexbuilder (14)

Ejecuto Flex Builder 3 en un Mac y a medida que crece mi proyecto, el tiempo de compilación se alarga cada vez más. Estoy usando algunos SWC y hay una buena cantidad de código, pero no debería tomar minutos para construir y bloquear a diario si es así?



Es posible que desee explorar el compilador de línea de comandos que se encuentra en Flex SDK, mxmlc . Según recuerdo, Flex Builder 3 parece ocultar todos los detalles del compilador, pero tal vez haya argumentos que pueda agregar que lo ayudarán a acelerar la compilación.

Por ejemplo, es posible que desee establecer optimize=false que omitirá el paso de optimización del bytecode (quizás reduciendo el tiempo de compilación). Esto, por supuesto, tiene el precio del rendimiento y el tamaño del archivo de la aplicación real.

Se puede encontrar más documentación sobre mxmlc en: http://livedocs.adobe.com/flex/3/html/compilers_13.html .

¡Buena suerte!


No es necesario usar mxmlc en la línea de comandos solo para poder agregar indicadores de compilación. Haga clic con el botón derecho en su proyecto en Flex Navigator, seleccione Propiedades y luego Componente Flex en el cuadro de diálogo que aparece. Allí puede agregar cualquier indicador de compilación adicional.

Sin embargo, no estoy seguro de que haya mucho que hacer, más código significa más tiempo de compilación, así es como es. Si no está haciendo una compilación de lanzamiento (o lo que se llame en Flex Builder) es poco probable que la configuración de su compilador incluya optimize para comenzar. Las mejores opciones para intentar serían -incremental (que solo recompila las partes que han cambiado) y -keep-generated-actionscript (que evita que el compilador elimine los archivos de ActionScript generados a partir de los archivos MXML de su aplicación).

Prefiero usar mxmlc en la línea de comandos (por medio de Ant) en comparación con Flex Builder. Aunque no creo que este último compila más lento, se siente más lento en todos los sentidos. Usar Ant también hace posible hacer algo más que la compilación cuando se compila y la compilación condicional (solo compila un SWF o SWC si el código fuente realmente ha cambiado). Echa un vistazo a la publicación de mi blog para obtener más información sobre eso.

Lo que podría intentar es el Flex Compiler Shell , otra herramienta de línea de comandos que puede acelerar las cosas. Básicamente trata de mantener tanto como sea posible en la memoria entre compilaciones, por lo que no es necesario esperar a que se inicie JVM (el compilador Flex es una aplicación Java). Por otro lado, esto es una especie de lo que Flex Builder hace de todos modos.


Además de las sugerencias ya mencionadas, cierre cualquier proyecto que tenga abierto que no esté usando.

Haga clic en Rich en el proyecto en la vista del navegador y seleccione "Cerrar proyectos no relacionados".

Dependiendo de la cantidad de proyectos que tenga abiertos, esto puede conducir a mejoras significativas en el tiempo de compilación, así como en el rendimiento general.

cámaras de micrófono

[email protected]


Vaya a Proyecto-> Propiedades-> Aplicaciones Flex. Todas las aplicaciones enumeradas se compilan cada vez (incluso si tiene un conjunto predeterminado). Si elimina todo menos el valor predeterminado (no se preocupe, no eliminará los archivos reales), solo compila la aplicación predeterminada. Esto resultó en una velocidad significativa para mí. Si cambia su aplicación predeterminada, la agrega a la lista de aplicaciones Flex, lo que agrega a su tiempo de compilación. Deberá mantener esta lista para obtener la compilación más rápida.


Por lo general, la primera construcción lleva más tiempo, y luego es bastante rápida después de eso. Eso es usando Vista x64 w / core 2 duo.

De lo contrario, estoy casi seguro de que un procesador de actualización Intel Core i7 Extreme Edition 965 a 3.2GHz aceleraría tu Flex y se desarrollaría muy bien ... :) :) :)


Si es posible, desea al menos 4 gigas en tu computadora y asegúrate de anular las configuraciones de memoria predeterminadas que eclipse / flexbuilder proporciona a la aplicación.

Si no está seguro de cómo hacerlo, puede encontrar la aplicación flexbuilder en / Aplicaciones, haga clic con el botón derecho y elija "Mostrar contenido del paquete". A continuación, vaya al archivo de contenido y edite el archivo eclipse.ini. Edite ese archivo con configuraciones de memoria de al menos:

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

También vale la pena entrar en las preferencias de eclipse / flexbuilder y marcar el cuadro "Mostrar estado del montón" en Windows-> Preferencias-> General (Esto está en eclipse con el complemento FB, supongo que también está ahí para FB independiente) .

Esto muestra la memoria actual en la esquina inferior derecha de la ventana y tiene un pequeño icono de papelera para que pueda forzar la recolección de basura.

También te sugiero que apagues la construcción automática del proyecto cuando cambien tus archivos (puedes forzar una compilación con cmd-B).

Tuvimos un gran proyecto con bastantes archivos de módulos y el rendimiento en FlexBuilder 3 fue decente con estos pasos.


Creé RAM Disk con espacio de trabajo y da hasta 10% de mejor tiempo de compilación. No mucho, pero algo.


Siempre desactivo la "compilación automática" para Flex. Recopila demasiado, lleva demasiado tiempo y, por lo tanto, interrumpe mi trabajo.

Si tiene muchos archivos de proyecto diferentes y todos estos necesitan ser recompilados, pero también tiene otros proyectos abiertos y no desea cerrarlos siempre que esté haciendo una compilación, también puede usar Conjuntos de trabajo de Eclipse.

Desafortunadamente, el Flex Navigator predeterminado no admite conjuntos de trabajo. Pero puede abrir el Explorador de paquetes con Ventana / Mostrar vista / .... Haga clic en la pequeña flecha blanca hacia abajo para ver hacia arriba y seleccione Elementos de nivel superior: Conjuntos de trabajo . A continuación, puede agregar Conjuntos de trabajo (también conocidos como grupos de proyectos). Cada proyecto debe estar en al menos un conjunto de trabajo ("Otros proyectos" es el predeterminado), pero puede estar en varios.

Ahora con Project / Build Working Set / ... puede instruir a Eclipse para que construya todos los proyectos en este conjunto de trabajo, pero ninguno de los otros. Esto es especialmente útil si sospecha que las referencias de su proyecto a veces están rotas; de lo contrario, la creación del proyecto ''más avanzado'' debería desencadenar construcciones posteriores automáticamente.


En primer lugar, comentarios sobre algunas de las respuestas:

  1. No es necesario especificar explícitamente -incremental en Flex Builder porque usa la compilación incremental de manera predeterminada.

  2. -keep-generated-actionscript es un asesino de rendimiento porque instruye al compilador a escribir los códigos AS3 generados para los componentes MXML en el medio de la compilación. Archivo de E / S en el medio de una compilación significa pausas innecesarias y bajas utilizaciones de CPU.

  3. -optimize ralentiza los enlaces porque indica al vinculador que produzca archivos SWF más pequeños. Tenga en cuenta que -optimize = true | false no tiene ningún efecto en la creación de SWC porque los SWC son bibliotecas y deben ser desoptimizados.

  4. Raramente me meto en la configuración de JVM porque JVM conoce bien sus trabajos y se sintoniza bastante bien en tiempo de ejecución. La mayoría de las personas empeora la situación al configurar varios parámetros de ajuste de GC. Dicho esto, hay 3 configuraciones que la mayoría de las personas entienden y configuran correctamente para su uso:

-Xmx (tamaño máximo de almacenamiento dinámico)

-servidor o -cliente (servidor de HotSpot o VM de cliente)

-XX: + UseSerialGC o -XX: + UseParallelGC (u otro GC no serial)

-server supera sistemáticamente -client en aproximadamente 30% cuando se ejecuta el compilador Flex. -XX: + UseParallelGC enciende el recolector de basura paralelo. ideal para computadoras multinúcleo y cuando la computadora todavía tiene ciclos de CPU de sobra.

También es posible que desee comprobar HellFire Compiler Daemon ( http://bytecode-workshop.com/ ). Utiliza múltiples núcleos de procesador para compilar múltiples aplicaciones Flex al mismo tiempo. También puede ejecutar el compilador en una segunda máquina a través de sockets (suponiendo que su segunda máquina tenga CPU más rápidas y más memoria).

En mi opinión, use más módulos que bibliotecas y use HFCD.

Espero que esto ayude.

-Clemente


Como dijo Clement, usa el demonio HellFire Compiler Daemon. Si tiene múltiples módulos y más núcleos de CPU en su máquina, puede compilarlos en paralelo. Otra opción es usar IntelliJ (la versión comercial) que ofrece la misma función.


El SDK 4.xx introdujo un error tonto (consulte el sistema de errores de Adobe, problema FB-27440), que causa que los proyectos con metadatos SVN o CVS se compilen mucho más despacio que con el SDK 3.xx. Sobre cómo se puede solucionar, consulte aquí .


No uso Flex Builder, pero utilizo el compilador de Flex SDK todos los días y estaba perdiendo mucho tiempo esperando que el compilador MXMLC hiciera su trabajo hasta que encontré el Flex Compiler SHell:

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

Aunque, en teoría, Flex Builder ya utiliza estas optimizaciones, podría valer la pena verificarlo.