Hace Java 6 consumen más memoria que esperar para largish aplicaciones?
Tengo una aplicación que he estado desarrollando durante años, lo que ha sido, hasta ahora tomado unos 30-40 MB en mi particular configuración de la prueba; ahora con Java 6u10 y 11 es tomar varios cientos de mientras está activo. Rebota alrededor de un lote, en cualquier lugar entre 50 metros y 200 METROS, y cuando está inactivo, se hace la GC y la caída de la memoria de la derecha hacia abajo. Además, se genera millones de fallos de página. Todo esto es observado a través de Administrador de Tareas de Windows.
Así, me encontré bajo mi profiler (jProfiler) y el uso de jVisualVM, y dos de ellos indican la habitual moderada montón y perm-gen de los usos de unos 30 metros combinado, incluso cuando está completamente activo haciendo mi carga de la prueba de ciclo.
Así que estoy confundido! Y no sólo que requieran más memoria de la Memoria Virtual de Windows piscina - esto se está mostrando como 200M "Uso de memoria".
ACLARACIÓN: quiero ser muy claro en esto - observó más de un 18 horas con Java VisualVM la clase montón y perm gen montón han sido perfectamente estable. El asignado volátiles de la pila (el edén y el titular) se encuentra indiferentes a 16MB (que se alcanza en los primeros minutos), y el uso de esta memoria fluctúa en un perfecto patrón de crecimiento uniforme de 8MB 16MB, en la que el punto de GC patadas en una gotas de vuelta a 8MB. A través de este 18 horas, el sistema estaba bajo constante máxima de carga ya que yo estaba corriendo una prueba de esfuerzo. Este comportamiento es perfectamente y constantemente reproducible, visto a través de numerosas carreras. La única anomalía es que mientras esto ocurre en la memoria tomado de Windows, se observó a través del Administrador de Tareas, fluctúa todo el lugar desde 64 MB hasta 900 MB.
ACTUALIZACIÓN 2008-12-18: tengo ejecutar el programa con -Xms16M -Xmx16M sin aparente efecto adverso rendimiento está bien, el tiempo de ejecución total es aproximadamente el mismo. Pero el uso de la memoria en un corto plazo todavía alcanzó un máximo de 180 m de altura.
Actualización 2009-01-21: parece Que la respuesta puede ser el número de hilos - véase mi respuesta a continuación.
EDIT: Y me refiero a los millones de fallos de página literalmente - en la región de 30M+.
EDIT: tengo un 4G de la máquina, por lo que la 200M no es significativo en ese sentido.