| Inicio | Perfil | Servicios | Offshore | Recursos | Mapa del sitio | Contáctenos |          
Artículo "Consejos sobre pruebas de rendimiento y optimización"

En este útil artículo, Floyd Marinescu (autor del popular libro "EJB Design Patterns") nos enseña cómo hacer que nuestra aplicación Web tenga un alto rendimiento incluso bajo una gran carga de usuarios y de datos, basándose para ello en su experiencia como arquitecto jefe del portal TheServerSide.com, el cual recibe más de dos millones de visitas diarias.



5. OPTIMIZACIÓN.

Se necesita optimizar la base de datos, la arquitectura, la configuración y el hardware. Como se mencionó en el apartado anterior, el motivo más común de que la aplicación no sea escalable es que no se haya afinado la base de datos. Un administrador de base de datos es siempre una persona vital en cualquier equipo de desarrollo, pero si no tiene ninguno, a continuación se muestra lo que puede hacer.

Revise bien sus Enterprise Javabeans y verifique que su base de datos no realiza búsquedas lineales para ninguna de las consultas SQL que hay en el código. Para hacer esto, copie el SQL del código y, en la ventana SQL de la base de datos, ejecute una cláusula EXPLAIN:

Explain select * from tabla where campo = valor

Aunque la sintaxis de EXPLAIN difiere de una base de datos a otra, siempre existe algo similar. Después de ejecutar esta línea de código, la base de datos le dirá si está buscando por un índice o realizando una búsqueda lineal. Asegúrese de que cada fragmento de SQL en la aplicación usa los índices de la base de datos y, si no es así, cree dichos índices.

Después de optimizar la base de datos y optimizar la configuración de hardware (como se explicó en el apartado anterior), el siguiente paso es optimizar el código y esto se hace con un perfilador.

Un perfilador es un programa que analiza la aplicación mientras ésta se ejecuta. Un perfilador provee información a la que no se podría acceder de otra manera, como, por ejemplo:

  1. Cuantos objetos de cada clase hay en memoria y el comportamiento del recolector de basura (garbage collector).

    • Esta información puede ayudar a identificar clases que deberían estar en un “pool”.
    • También puede ayudar a afinar el “heap” de Java.
  2. Cuanto tiempo la aplicación pasa en determinadas clases.
    Esta es la función más importante. El perfilador indicará qué clases son los cuellos de botella.

Un programa de éstos que me ayudó mucho fue Optimize-It. Optimize-It puede usarse con cualquier programa Java o con cualquier servidor de aplicaciones basado en Java. La configuración con Weblogic es sencilla y Optimize-It puede usarse como perfilador de una aplicación que se halla en un servidor remoto.

La optimización de la arquitectura es sumamente específica para cada proyecto, pero a continuación se incluyen algunos consejos:

  1. Asegúrese de que se han minimizado las llamadas a la red, especialmente las llamadas a la base de datos.

    • Es mejor tener una base de datos grande que muchas pequeñas.
    • Confirme que ejbStore no almacena nada para operaciones de sólo lectura.
    • Use objetos de detalle para obtener el estado de los beans de entidad.

  2. Asegúrese de aprovecharse de la “cache” cuando sea posible.
    Su servidor de aplicaciones probablemente permite colocar los beans de entidad en la “cache” de memoria. Asegúrese de que se aprovecha de ello, ya que reducirá dramáticamente las llamadas a la base de datos y acelerará el acceso a los datos.

  3. Asegúrese de que está usando beans de sesión como una “fachada” de los beans de entidad.
    Puede encapsular el flujo de trabajo de un caso de uso completo en una llamada de red a un único método de un bean de sesión (y en una única transacción).

 
 

Ir a la página: 1   2   3   4    Siguiente >>

 Versión para imprimir

 

 

| Inicio | Perfil | Servicios | Offshore | Recursos | Mapa del sitio | Contáctenos|