Prueba comparativa

Existe una serie de herramientas disponibles para las aplicaciones de prueba comparativa. Se pueden utilizar las clases Stats y PerformanceTest, desarrolladas por los miembros de la comunidad de Flash. También se puede utilizar el visor en Adobe® Flash® Builder™ y la herramienta FlexPMD.

Clase Stats

Para analizar el código en tiempo de ejecución utilizando la versión oficial del motor de ejecución, sin ninguna herramienta externa, se puede utilizar la clase Stats desarrollada por mr. doob de la comunidad de Flash. Puede descargar la clase Stats en la siguiente dirección: https://github.com/mrdoob/Hi-ReS-Stats .

Esta clase permite realizar un seguimiento de los siguientes elementos:
  • Fotogramas representados por segundo (cuantos más, mejor).

  • Milisegundos empleados para representar un fotograma (cuantos menos, mejor).

  • Cantidad de memoria que utiliza el código. Si aumenta en cada fotograma, es posible que la aplicación experimente una pérdida de memoria. Es importante investigar esta posible pérdida de memoria.

  • Cantidad máxima de memoria utilizada por la aplicación.

Una vez descargada, la clase Stats se puede usar con el siguiente código de compacto:

import net.hires.debug.*; 
addChild( new Stats() );

Al utilizar la compilación condicional en Adobe® Flash® Professional o Flash Builder, se puede habilitar el objeto Stats:

CONFIG::DEBUG 
{ 
    import net.hires.debug.*; 
    addChild( new Stats() ); 
}

Al cambiar el valor de la constante DEBUG , se puede habilitar o deshabilitar la compilación del objeto Stats. Se puede utilizar el mismo enfoque para sustituir cualquier lógica de código que no se desee compilar en la aplicación.

Rendimiento de la clase PerformanceTest

Para perfilar la ejecución de código ActionScript, Grant Skinner ha desarrollado una herramienta que se puede integrar en un flujo de trabajo de comprobación de unidades. Es posible transmitir una clase personalizada a la clase PerformanceTest, que realiza una serie de comprobaciones en el código. La clase PerformanceTest permite realizar una prueba comparativa de los distintos enfoques con facilidad. La clase PerformanceTest se puede descargar en la siguiente dirección: http://www.gskinner.com/blog/archives/2009/04/as3_performance.html .

Visor de Flash Builder

Flash Builder se distribuye con un visor que permite realizar pruebas comparativas del código con un alto nivel de detalle.

Nota: utilice la versión de depuración de Flash Player para acceder al visor o, de lo contrario, aparecerá un mensaje de error.

El visor también se puede utilizar con el contenido producido en Adobe Flash Professional. Para ello, cargue el archivo SWF compilado desde un proyecto de ActionScript o Flex en Flash Builder y podrá ejecutar el visor en el mismo. Para obtener más información sobre el visor, consulte “Profiling Flex applications” en Using Flash Builder 4 (en inglés).

FlexPMD

Los servicios técnicos de Adobe han publicado una herramienta denominada FlexPMD, que permite auditar la calidad del código ActionScript 3.0. FlexPMD es una herramienta de ActionScript similar a JavaPMD. FlexPMD mejora la calidad del código auditando un directorio de origen de ActionScript 3.0 o Flex. Detecta prácticas no adecuadas de codificación como, por ejemplo, código no utilizado, demasiado código complejo, mucho código largo, uso incorrecto del ciclo de vida del componente de Flex.

FlexPMD es un proyecto de código abierto de Adobe disponible en la siguiente dirección: http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD . En esta dirección encontrará también el plug-in Eclipse: http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD+Eclipse+plugin .

FlexPMD facilita la auditoría de código para garantizar que el código esté limpio y optimizado. La eficacia real de FlexPMD radica en su extensibilidad. Como desarrollador, es posible crear conjuntos de reglas propias para auditar cualquier código. Por ejemplo, se puede crear un conjunto de reglas que detecten un uso excesivo de filtros o cualquier otra práctica de codificación inadecuada que se desee detectar.