Archivo categoría Java
Lady Java
Por TheCoffeMaker - General, Java - 18/08/2010
Excelente … JavaZone primero nos trajo Java-4-Ever … y ahora … Lady Java … disfruten!
Netbeans Platform – Configuración de opciones de inicializacion
Por TheCoffeMaker - Java, OpenSource - 12/07/2009
Hoy día es común contar con procesadores de múltiples núcleos, arquitecturas de 64-bit o con varios procesadores, si este es nuestro caso, podemos configurar los argumentos de inicialización de la JVM para poder mejorar el uso de la memoria del sistema y cambiar el algoritmo de garbage collection que usa el sistema.

En Netbeans podremos hacer esto modificando el archivo netbeans.conf, ubicado en el directorio /etc dentro del directorio home del Netbeans, por ejemplo en mi sistema este esta en ~/Software/netbeans-6.7/etc/, pero la ubicación del directorio de Netbeans dependerá de su instalacion.
Bien, si abren el archivo netbeans.conf veran varios parámetros de configuración para Netbeans, pero en este caso nos interesan los parámetros de inicialización de la JVM, estos se pasan a través de la propiedad netbeans_default_option, veamos que tenemos en una instalación por defecto:
netbeans_default_options="-J-Dorg.netbeans.modules.tomcat.autoregister.token=1246325206684 -J-Dorg.netbeans.modules.tomcat.autoregister.catalinaHome=\"/home/damian/Software/apache-tomcat-6.0.18\" -J-Dorg.glassfish.v3.installRoot=\"/home/damian/Software/servers/glassfish-v3-prelude\" -J-Dcom.sun.aas.installRoot=\"/home/damian/Software/servers/glassfish-v2ur2\" -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true"
Veamos de que se tratan cada uno de estos parametros:
-J-Dorg.netbeans.modules.tomcat.autoregister.token=1246325206684
-J-Dorg.netbeans.modules.tomcat.autoregister.catalinaHome=\”/home/damian/Software/apache-tomcat-6.0.18\”
2- GlassFish 3 install Root
-J-Dorg.glassfish.v3.installRoot=\”/home/damian/Software/servers/glassfish-v3-prelude\”
3- GlassFish 2 UR2 install Root
-J-Dcom.sun.aas.installRoot=\”/home/damian/Software/servers/glassfish-v2ur2\”
4- Parametros de configuracion de JVM
-J-client -> Utilizado para mejorar la eficiencia de Netbeans, ya que previene que se inicialice utilizando el servidor de maquina virtual Java HotSpot, el cual utiliza mas recursos del sistema. En ves de usar dicho servidor, este parámetro indica que se inicialice utilizado el Java HotSpot Client VM decrementando el consumo de recursos.
-J-Xss2m -> Configura el tamaño del stack de código nativo para cada hilo de ejecución. En caso de que nuestro tamaño de stack sea muy pequeño, eventualmente podríamos llegar a estar experimentando un overflow del stack (class.java.lang.StackOverflowError). Cada hilo tiene dos stacks, uno para el código Java y otro para código C. Esta opción, por lo tanto, configura el máximo tamaño del stack que puede ser usado por código C en el hilo.
-J-Xms32m ->Configura el tamaño iniciar del heap de memoria. Esto le dice a la JVM cuanta memoria le tiene que asignar al heap al iniciar, previniedo que Netbeans consuma mas memoria y mejorando el tiempo de inicializacion.
-J-XX:PermSize=32m -> Configura la generación inicial de espacio permanente
-J-XX:MaxPermSize=200m -> Configura el máximo de generación de espacio permanente
-J-Xverify:none -> Especifica el nivel de verificación de bitcode que queremos que la JVM realice al momento de cargar clases. Las opciones son none, donde no se hace ninguna verificación, all, donde se verifica todo y remote, donde se verifican solo las clases que son cargadas desde la red. Esto quiere decir que nada de lo instalado localmente sera verificado, acelerando el proceso de carga de clases.
-J-Dapple.laf.useScreenMenuBar=true -> Este parámetro le dice a swing como debe comportarse la barra de menues de Netbeans, generalmente esto esta asociado con sistemas MacOS, donde el usuario espera que la barra de menues de Netbeans este ubicada en la barra superior y no dentro de la aplicación.
-J-Dsun.java2d.noddraw=true -> Este parámetro sirve para deshabilitar completamente el uso de DirectDraw y Direct3D usado por el sistema Java 2D.
Bien, visto lo que tenemos por default en la configuracion de Netbeans, veamos de que va todo esto:
Para especificar que la JVM debería usar un algoritmo mas eficiente de garbage collection debemos usar el parámetro “-J-XX:+UseConcMarkSweepGC“, esto es especialmente útil cuando corremos sobre múltiples procesadores o procesadores de núcleos múltiples.
También deberíamos especificarle a la JVM que sea capas de descargar (descargar en el sentido de sacar no de bajar de la red) las clases, esto se logra con los parámetros -J-XX:+CMSClassUnloadingEnabled y -J-XX:+CMSPermGenSweepingEnabled.
Para mas información sobre los parámetros que pueden ayudarnos a mejorar nuestra instalación de Netbeans, vean este link.

Espero que les haya servido y agreguen el blog a sus lesctores de RSS para mantenerse informado, ya que este es el primero de una serie de posts sobre el desarrollo de aplicaciones utilizando Netbeans Platform.
Saludos!
