2011-04-02 11 views
6

Estoy desarrollando una aplicación web usando java + gwt y NetBeans 6.9.1 + Glassfish 3.0.1. Después de algunas horas de desarrollo, las prestaciones de mi sistema se degradan, por lo que siempre compruebo el Monitor de actividad si algún proceso obtiene toda la memoria o la CPU. Siempre noté un par de procesos llamados 'java' que engendran alrededor de 50-60 hilos. Mi sistema es muy lento hasta que los mate, entonces puedo volver a trabajar normalmente.Muchos hilos y uso de memoria para procesos 'java' en Mac OSX 10.6.7

Uso el modo de depuración de NetBeans durante el desarrollo, pero incluso cuando detengo el modo de depuración, el proceso de java sigue degradando el rendimiento del sistema hasta que lo mato. También experimento a veces el error "java.lang.OutOfMemoryError: Java heap space", sucede después de varias horas (digamos 12-16) que se abre mi NetBeans istance (esto me pasa con la misma versión de NetBenas también en un entorno Linux)) En este caso, tengo que cerrar y volver a abrirlo para que vuelva a compilar/trabajar.

¿Alguien experimentó los mismos problemas y/o sabe cómo evitarlos? ¿Crees que este problema podría ser causado por algún tipo de problema en la aplicación que estoy desarrollando o podría ser una falla o un error de memoria de Netbeans?

+0

Lo primero que debe hacer: Averiguar, qué aplicación Java (NetBeans, GlassFish, ...) es ejecutado por la mayoría de estos procesos. Puede usar 'ps ax | grep java | sed G' en un Terminal para conocer la línea de comando (observe especialmente el último argumento de cada línea). –

+0

Parece que el proceso padre es NetBeans. Por cierto, GlassFish es iniciado por NetBeans, así que no puedo asegurarlo. Voy a intentar iniciar GlassFish manualmente antes de iniciar NetBeans. –

+0

Ok, comenzando Glassfish manualmente obtengo instantáneamente un proceso Java con más de 50 hilos, incluso con NetBeans cerrado. ATM el sistema no es lento, pero las prestaciones aún se degradan después de varias horas de desarrollo con Netbeans. –

Respuesta

0

Tenemos problemas similares con eclipse. Hemos probado con mucha paciencia los siguientes pasos y hemos resuelto algunos de los problemas.

prácticas de codificación

1) db verificado/hibernación sesión relacionada abrir y cerrar el código del lado del servidor y limpiado cientos de casos de mala práctica de sesiones de no-cierre (esto mejora el rendimiento aún despliegue)

2) verificado io relacionados con las malas prácticas y limpiarlos (esto mejora el rendimiento aún despliegue)

Lighweight IDE

1) Asegúrese de que el IDE solo tiene los complementos que necesita. Está bien tener una instalación múltiple de IDE personalizada para la tarea.

Ejemplo -

a) GWT Dev - Una instancia IDE sólo tiene GWT dev requerido plugins solamente

b) Código Refactoring - Una instancia IDE tiene findbugs, PMD, instalados CodePro

Nota: Comience siempre con una configuración mínima de IDE (con y sin código de proyecto hello world). Profile y comprueban si algunos complementos pierden memoria cuando se crean instancias o cuando están en uso normal.

Y como dijo utsun - Tienes suerte de que la mierda de memoria pase mucho más a menudo para algunos de nosotros atascados en hardware primitivo.

Me encantaría que otros compartan algunos consejos para reunir o buscar la optimización de la memoria de IDE, además de lanzar más hardware. Ejemplo: una construcción de eclipse o netbeans con solo los complementos absolutamente esenciales para gwt/maven/svn. Tire todas las otras cosas con artilugios.

+0

La pregunta está un poco desactualizada, pero aún así parecen buenos consejos, así que marcaré su respuesta como la correcta. ¡Gracias! –