martes, febrero 07, 2012

Aumentar mejorar el rendimiento velocidad de Java (Mejores Practicas)

Muchos preguntan esto, puesto que o bien creen que Java es lento o crearon o poseen un programa que se comporta lento.

La verdad del asunto es que independientemente si java es interpretado, etc, etc, etc, no importa que tan "compilado" o  nativo sea un lenguaje si no lo saben utilizar o no lo hacen bien, porque esto genera programas lentos.


Java es muy versátil y poderoso y aunque no lo crean la mayoría lo utiliza mal, hay muchos programadores en java que lo hacen como si estuviesen programando para "Visual Basic".


Solución:
  • Diseña bien tus programas y metodologías de programación para no abusar de los objetos, hay personas que utilizan un objeto Integer para almacenar un id de sexo por ejemplo.
  • Utiliza primitivas siempre que se pueda.
  • Ajusta apropiadamente el uso de las variables no deje siempre objeto o variables que utilicen mas memoria de la requerida.
  • Establece bien el ámbito o alcance de cada variable, de cada objeto, para que sea destruido apropiadamente.
  • Reutiliza métodos apropiadamente.
  • Establece métodos estáticos cuando sea necesario y cuando sea posible.
  • No utilices framework o librerías genéricas de terceros a menos que se necesario.
  • Utiliza patrones de poliformismo (reutilizacion) en tiempo de ejecucion.
  • En la medida de lo posible diseña tu propio framework u obtén el código fuente para poder optimizarle, mejorarle, agregarle y/o quitarle lo que no necesite.
  • Evita la programacion al estilo google (el buscador), siempre aprende el trasfondo y el porque de lo que estas haciendo.
  • Si el programa a diseñar sera ejecutado en un solo S.O entonces considere la posibilidad de utilizar JNI.
  • Reduce al minimo necesario en produccion los IO, esto consumen muchos recursos.
  • Reduce al minimo en produccion el uso de logs y utiilza herramientas especializadas como Log4J. 
  • KISS vease: Mantenlo simple estupido.
  • Al diseñar sopesa bien productividad vs rendimiento.
  • A menos que tengas mucha experiencia unos 12 años de experiencia no utilizar modelos como programacion extrema.
Como pueden ver la clave esta en el diseño, un programador experimentado sabe que el diseño es la base de todo, y una establecido cada detalle, se puede proceder a generar código. Siempre diseña primera y diseña


Otras mejores Practicas 
  • Diseña primero siempre, invierte el tiempo que sea necesario.
  • Utiliza Nomenclatura homogénea, estandarizada. 
  • Utiliza un formato de código homogéneo y mas estándar posible.
  • Utiliza un control de historial de código.
  • Utiliza alguna herramienta para hacer pruebas unitarias o de estrés.
  • Utiliza patrones que se ajusten a tus necesidades pero no lo deje tan genérico, muchos patrones están pensados para aplicaciones promiscuas y tratan de abarcar muchos escenarios, nuestra aplicación es privada y debemos pensar lo mas puesta a punto posible.

Una vez compilado lo único que resta es ajustar el heap (espacio de memoria reservado para un programa java) necesario para la ejecución de este programa:
  1. Aumenta el heap, el máximo y el mínimo.
  2. Aumenta el maxpersize adecuadamente.
  3. Utiliza o apunta a la jvm con soporte nativo ergo: a un jre.

Fuero de esto una vez compilado el programa es difícil hacer mas.


y nunca olviden que:

... para crear software de calidad duradera, rápido, eficiente y eficaz hay que crear una solida base arquitectónica que sea flexible al cambio.

:: Enlaces de referencia ::
Si quieres leer un poco mas de un equipo que lleva años en el medio y tiene amplia y basta experiencia, lee este articulo:
Related Posts Plugin for WordPress, Blogger...

POST MAS populares