fondo de nacimiento
El compilador Flash de Adobe (ASC, ActionScript Compiler) tiene un rendimiento demasiado "anticuado", y la máquina virtual Flash todavía tiene mucho margen de mejora en el rendimiento. Flash a menudo se trata como un juguete o, en broma, se le llama acaparador de CPU. En términos generales, rara vez optimizamos un SWF manualmente. En la mayoría de los casos, puede funcionar bien, pero cuando el tamaño de un archivo SWF es demasiado grande, el tiempo de carga es demasiado largo o el tiempo de ejecución del código es demasiado largo, lo que provoca el marco. La tasa es demasiado alta. Cuando es baja, debemos considerar optimizar SWF, como optimizar el código y comprimir recursos estáticos (imágenes, videos, etc.). Sin embargo, la mejora del rendimiento producida por la optimización manual es muy limitada. Se deben dejar más tareas de optimización en manos del compilador. Afortunadamente, el marco Apparat puede ayudarnos a liberarnos de la pesadilla de la optimización manual. No solo eso, cualquier SWF optimizado en el futuro puede hacerlo. optimizarse a partir de él. Joa Ebert, autor de Apparat, tiene profundos conocimientos en el campo de la optimización del rendimiento de Flash. En la conferencia FlashAndTheCity de este año, el excelente trabajo de Joa le valió dos premios : "El desarrollador de Flash más genio de 2010" y "El colaborador más destacado de 2010". " Gran premio.
Entorno de construcción
El marco de Apparat está escrito a través de Scale. Antes de practicarlo, debe instalar Scala 2.8.0 y Java 1.6. La instalación de 7-zip es opcional. Después de configurar estos entornos operativos básicos (que deben agregarse a la variable de entorno PATH), se puede descargar el último paquete de instalación (actualmente 1.0RC8) desde Google Code . Después de descargarlo, extráigalo a una nueva carpeta. Los archivos incluidos son:
Apparat proporciona muchas herramientas de línea de comandos, como tdsi, stripper, reducer, etc., así como algunas API de ActionScript muy especiales (existentes en archivos SWC). A continuación, echemos un vistazo a cómo Apparat acelera Flash.
Optimizar código de bytes
La función principal de Apparat es TAAS (compilador de ActionScript de tres direcciones). TAAS no cambiará ninguna línea de ActionScript. Puede obtener mejoras de rendimiento considerables simplemente utilizando técnicas de optimización ordinarias. A diferencia del compilador ASC de Adobe, Apparat analiza, reorganiza y vuelve a ensamblar archivos SWF y SWC compilados.
El código de bytes en la máquina virtual Flash AVM se basa en la pila. Esta estructura es difícil de optimizar. Apparat primero convierte el código de bytes basado en la pila en CFG (Control Flow Graph) y luego lo convierte en TAC sin pila a través de CFG. Código de dirección) , es decir, TAAS (Three Address ActionScript).
Con TAC/TAAS, el código de bytes de Flash se puede volver a optimizar en función de técnicas de optimización del compilador, como expansión en línea , propagación de copias , plegado constante , eliminación de código muerto , etc.
Apparat proporciona varios archivos SWC útiles con API más eficientes e incluso incluye API de Alchemy que aún no están disponibles en ActionScript. Después de que Apparat procese SWF que utiliza estas API, la eficiencia de ejecución mejorará enormemente. El principio es que Apparat realiza una optimización en línea en el código correspondiente. El formato de comando para optimizar el código de bytes es:
tdsi -i entrada.swf -o salida.swf
Fuente: Equipo UED de Koubei.com