A mí me parece un memory leak, aunque desconozco si el manejo de archivos multimedia grandes pueda consumir tanta RAM. Vamos a hacer un análsis de memoria.
Luego, procedamos a hacer un volcado de memoria (dump) cuando se detecte un OutOfMemoryError:
CONFIGURAR LA VM PARA VOLCADO DE MEMORIA
Luego, procedamos a hacer un volcado de memoria (dump) cuando se detecte un OutOfMemoryError:
- Agrega el argumento en VM arguments:Código [Seleccionar]
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/ruta/al/directorio/deseado
Corre el programa. Cuando se produzca un OutofMemoryError, la VM hará un volcado de memoria para su posterior análisis.ANALIZANDO EL VOLCADO DE MEMORIA
Instalar MAT (Memory Analyzer Tool) que Eclipse Founation
Para mayor comodidad nos descargamos MAT independiente desde aquí
Abrimos MAT y nos dirigimos al menú file y seleccionamos la opción Open Heap Dump.
Navegas hacia la ruta donde has especificado guardar el memory dump (VM arguments en Eclipse) y seleccionas el archivo de volcado (extensión .hprof).
Se nos mostrará una ventana para seleccionar la opción de análisis que deseamos. Seleccionamos la primera y le damos finish:
MAT hará su trabajo y nos mostrará el análisis del memory dump. - A partir de ésta pestaña principal puedes ir muy profundo. Puedes ver como usar MAT a detalle en éste blog.
- También dispones de VisualVM, una herramienta gratuita de Java para analizar el rendimiento de aplicaciones y mucho más: http://visualvm.java.net/features.html
- Si deseas puedes establecer más RAM a tu aplicación, prueba a 2048m o si tienes 4GB de RAM 4096m. Recuerda que deben ir en VM arguments y no en Program arguments.
Saludos.