Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/08/2009, 03:13
tistklehoff
 
Fecha de Ingreso: agosto-2009
Mensajes: 67
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema memoria con Socket

Hola.

Mientras tanto, trata de ejecutar la aplicación con el parámetro -Xmx.

Por defecto, una máquina virtual Java toma (creo recordar) 64Mb de memoria. Con este parámetro puedes hacer que tome más memoria para que tarde más tiempo en llenarse.

Además, echa un vistazo a los métodos Runtme.freeMemory, maxMemory y totalMemory, que te dicen cuánta memoria hay libre, máxima utilizable y máxima total en la máquina virtual. Es una forma rápida y algo tonta de verlo, pero puedes hacerlo fácilmente y después completar mirando un profiler.

Por cierto. ¿Devuelve una excepción o un error grave? ¿Has tratado de capturar Exception? ¿y capturar Throwable?

Tu programa usa un objeto ServerSocket para esperar las conexiones, ¿cómo haces la lectura de lo que te viene? ¿el procesamiento que haces de la información recibida es pesado? Pregunto esto porque podría ser que al leer los paquetes y tardar en procesarlos, los restantes queden en el socket y, si la información es tan ta, al final lo colapsen. ¿Podría ser?


Un saludo.