He estado escribiendo una pequeña aplicación java (¡la primera!), Que hace solo algunas cosas en este momento. Actualmente, ejecuta la clase principal que inicia una clase gui (una clase que escribí que amplía JFrame que solo contiene un JTextArea), una clase que carga un archivo local a través de un BufferedInputStream de aproximadamente 40 kb y una clase que carga una entrada desde un Archivo de propiedades JavaUso de la memoria de la aplicación Java
Todo funciona maravillosamente, sin embargo, estaba mirando el administrador de tareas de Windows y noté algo que me pareció extraño. Cuando lance la aplicación, el uso de RAM salta a unos 40MB mientras carga el archivo local y extrae algunos valores de él para mostrar en el JTextArea, lo cual me parece normal debido a la JVM, las clases base de Java, etc. Sin embargo, cuando la aplicación ha terminado de cargar el archivo, simplemente permanece inactivo, ya que actualmente no lo tengo haciendo otra cosa. Mientras está inactivo, mientras la ventana esté activa, el uso de la memoria de la aplicación comienza a aumentar en 10-20 kb por segundo. Esto me parece extraño. Si hago clic en otro programa para hacer que este sea la ventana inactiva, la memoria aún aumenta, pero a un ritmo mucho más lento (aproximadamente 10 kb cada 3-5 segundos).
No he probado para ver qué tan lejos subiría, pero esto me parece un comportamiento muy extraño. ¿Es este comportamiento Java normal? Supongo que es posible que mi código pueda estar perdiendo memoria, pero no estoy seguro de cómo. Me aseguré de cerrar el BufferedInputStream que estoy usando, y no puedo ver qué más podría causar esto.
Lo siento si mi explicación no tiene sentido, pero agradecería cualquier información y/o consejos que pueda tener alguien.
ACTUALIZACIÓN:
A sugerencia, básicamente quitaron mi solicitud a la clase principal, que simplemente llama a la clase GUI. La clase gui solo extiende JFrame y establece el tamaño de la ventana, el funcionamiento cercano y las propiedades visibles. Con estos cambios, la memoria aún crece a 10-20 kb, pero a un ritmo más lento. Esto, en conjunción con otros consejos que he recibido me lleva a creer que esto es solo Java. Continuaré jugando con eso y les dejaré saber si descubro algo más interesante.
Felicidades en su primera aplicación !!! ¿Tal vez podría publicar algún código? Sin código solo estamos adivinando. Además, simplemente siga supervisándolo para ver si realmente sigue aumentando o si simplemente se detiene en algún momento. Publica tus resultados –
@Romain, gracias! Pensé en publicar mi código, pero sinceramente, estaba más interesado en ver si esto es de alguna manera un comportamiento normal de Java (¡no lo creo, pero todo es posible!). Investigaré más y luego publicaré el código si no puedo entender por qué en unos días. ¡Gracias! –
#masternosaj Es normal que la memoria fluctúe un poco, ya que internamente se actualiza a la pantalla y se realiza la recolección de elementos no utilizados. No es normal que la memoria siga creciendo. Si eres un principiante de Java, he visto personas que piden revisiones de código de secciones de código en este sitio. –