fundo de nascimento
O compilador Flash da Adobe (ASC, ActionScript Compiler) tem desempenho muito "ontem", e a máquina virtual Flash ainda tem muito espaço para melhorias no desempenho. O Flash é frequentemente tratado como um brinquedo ou, brincando, chamado de devorador de CPU. De modo geral, raramente otimizamos um SWF manualmente. Na maioria dos casos, ele pode funcionar bem, mas quando o tamanho de um arquivo SWF é muito grande, o tempo de carregamento é muito longo ou o tempo de execução do código é muito longo, causando o quadro. taxa seja muito alta. Quando estiver baixa, precisamos considerar a otimização do SWF, como simplificar o código e compactar recursos estáticos (fotos, vídeos, etc.). No entanto, a melhoria de desempenho produzida pela otimização manual é muito limitada. Mais tarefas de otimização devem ser deixadas para o compilador. Felizmente, a estrutura do Apparat pode nos ajudar a nos libertar do pesadelo da otimização manual. ser otimizado a partir dele. Joa Ebert, autor de Apparat, tem insights profundos no campo da otimização de desempenho do Flash Na conferência FlashAndTheCity deste ano, o excelente trabalho de joa lhe rendeu dois prêmios : "O desenvolvedor Flash mais genial em 2010" e "O contribuidor mais destacado em 2010". " Grande prêmio.
Ambiente de construção
O framework Apparat é escrito através do Scale. Antes de praticá-lo, você precisa instalar o Scala 2.8.0 e o Java 1.6. A instalação do 7-zip é opcional. Depois de configurar esses ambientes operacionais básicos (que precisam ser adicionados à variável de ambiente PATH), o pacote de instalação mais recente (atualmente 1.0RC8) pode ser baixado do Google Code . Após o download, extraia-o para uma nova pasta. Os arquivos incluídos são:
Apparat fornece muitas ferramentas de linha de comando, como tdsi, stripper, redutor, etc., bem como algumas APIs ActionScript muito especiais (existentes em arquivos SWC). A seguir, vamos dar uma olhada em como o Apparat acelera o Flash.
Otimizar bytecode
A função principal do Apparat é TAAS (Three Address ActionScript Compiler). TAAS não altera nenhuma linha do ActionScript. Ele pode obter melhorias consideráveis de desempenho apenas usando técnicas comuns de otimização. Diferente do compilador ASC da Adobe, o Apparat analisa, reorganiza e remonta arquivos SWF e SWC compilados.
O bytecode na máquina virtual Flash AVM é baseado em pilha. Essa estrutura é difícil de otimizar. O Apparat primeiro converte o bytecode baseado em pilha em CFG (Control Flow Graph) e depois o converte em TAC sem pilha por meio de CFG. Código de endereço) , ou seja, TAAS (Three Address ActionScript).
Com o TAC/TAAS, o bytecode Flash pode ser reotimizado com base em técnicas de otimização do compilador, como expansão inline , propagação de cópia , dobramento constante , eliminação de código morto , etc.
Apparat fornece vários arquivos SWC úteis com APIs mais eficientes e até inclui APIs Alchemy que ainda não estão disponíveis no ActionScript. Depois que o SWF usando essas APIs for processado pelo Apparat, a eficiência de execução será bastante melhorada. O princípio é que o Apparat executa a otimização in-line no código correspondente. O formato do comando para otimizar o bytecode é:
tdsi -i entrada.swf -o saída.swf
Fonte: Equipe UED Koubei.com