Pergentino, bom dia.

A solução para o consumo excessivo de memória foi alterar sua task de mxmlc
(Flex Ant Task) para exec?

Att.,
Daniel R.C.Frank
Análise e Programação


Em 2 de setembro de 2010 00:28, Pergentino Araújo
<[email protected]>escreveu:

> Vou dormir feliz!
>
> Só para compartilhar, existe a possibilidade de chamar diretamente o
> mxmlc.exe via ant, passando os argumentos como parâmetro para a chamada.
>
> Fica meio feio a organização do target, mas esta foi a melhor forma e mais
> performática que achei e, para a falta de documentação em relação ao
> ANTFLEX, fica mais fácil de você aplicar os parâmetros normais de
> compilação<http://www.docsultant.com/site2/articles/flex_cmd.html#mxmlc_3_syntax>
> .
>
> Ahh, a memória que antes chegava a 1Gb, agora não passa de 100 e o tempo
> que antes era de 6 minutos, agora é de 1 minuto. :)
>
> Para os interessados, segue trecho em anexo.
>
> P.S.1: Para quem quer ainda mais desempenho, existe como você executar em
> paralelo várias compilações, para se aprofundar, busquem algo como
> "<parallel threadcount="4">" no Google.
> P.S.2: Ajustem o trecho para as suas necessidades, este trecho é o básico.
>
> Abraços.
>
>     <target name="build-module" description="Compilação de módulos passados
> como parâmetros">
>         <exec executable="${mxmlc}">
>             <arg line="-benchmark=true" />
>             <arg line="-keep-generated-actionscript=false" />
>             <arg line="-debug=false" />
>             <arg line="-context-root=meucontexto" />
>             <arg line="-output=${modulo}.swf" />
>             <arg line="-incremental=true" />
>             <arg line="-services=services-config.xml" />
>             <arg line="-load-externs=xmlGerado.xml" />
>             <arg line="-load-config=flex-config.xml" />
>             <arg line="-compiler.source-path=src" />
>             <arg
> line="-compiler.external-library-path=${FLEX_HOME}/frameworks/libs/player/9/"
> />
>             <arg
> line="-compiler.library-path+=${FLEX_HOME}/frameworks/libs" />
>             <arg line="" />
>             <arg line="-- ${src.modulos.dir}/${modulo}.as" />
>         </exec>
>     </target>
>
>
>
>
> --
> Atenciosamente, Pergentino Araújo.
> Arquiteto Java/Flex
> Doutorando Engenharia Elétrica UnB
> Currículo Lattes: http://lattes.cnpq.br/3092110184317060
>
>
> 2010/9/1 Pergentino Araújo <[email protected]>
>
> Pessoal,
>>
>> estou em busca da solução perfeita para compilação "em massa" de módulos,
>> onde no momento possuo mais de 30 e isto tem gerado dois grandes problemas:
>> 1. Tempo de compilação
>> 2. Memória utilizada
>>
>> Para solucionar a 1a situação, faço uso do parâmetro incremental,
>> setando-o como true, porém o 2o problema está me tirando a paciência.
>>
>> A forma mais válida que achei até hoje é criar uma target que recebe como
>> parâmetro o nome do módulo e, desta forma, posso criar uma target que faz
>> antcall's, semelhante a apresentada abaixo:
>>
>> <target name="build-modules">
>>         <antcall target="build-module">
>>             <param name="modulo" value="CadastroAtividade"/>
>>         </antcall>
>> ...
>> ...
>> </target>
>>
>> Percebi que, quando passo pra compilação do 11º módulo, o tempo de
>> compilação aumente e, consequentemente a sua memória. Neste momento, a
>> memória está passando de 1GB e isto não cheira bem.
>>
>> Para entender como funciona de fato "por baixo dos panos", adicionei o
>> parâmetro "-debug" na execução do ant e percebi que toda vez que eu chamo
>> uma antcall, ele não reutiliza o que já foi carregado para a memória,
>> adicionando tudo de novo. Seria basicamente chamar outra vez o ant que sai
>> engordando a memória.
>>
>> Será que existe alguma solução ou terei de apelar pra, toda vez, sair
>> comentando o build.xml, retirando os "antcalls" ?
>>
>> --
>> Atenciosamente, Pergentino Araújo.
>>
>
>  --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a