Análisis rendimiento
Publicado por tipitipi (9 intervenciones) el 17/01/2020 16:40:07
Hola:
De antemano Gracias a la ayuda que me puedan dar.
He desarrollado una pequeña aplicación que consiste simplemente en un jframe con un borderlayout. En cada parte del borderlayout "agrego" un jpanel. Nada más.
Posterirmente genero un fichero Test.jar y lo lanzo en tres maquinas distintas (todas ellas con la misma versión de jdk "jdk1.7.0_80") y al abrir el jconsole para observar el comportamiento veo que el comportamiento es totalmente distinto (principalemtne en la parte de memoria) y con tendencia asecendente.
A continuación adjunto los detalles que considero más significativos para el análisis y las gráficas obtenidas a través de jconsole de cada una de las máquinas tras varias horas en ejecución:
-------------------------------------------------------------------------------
W10 Enterprise
16 GB de RAM
(I7-6700HQ 2,60 GHz) * 8

-------------------------------------------------------------------------------
W10 Enterprise
8 GB de RAM
(Intel Xeon 5160 3,00 GHz ) x 2

-------------------------------------------------------------------------------
LINUX MINT 18
4 GB de RAM
(I7-6700HQ 2,60 GHz) * 4

-------------------------------------------------------------------------------
Me gustaría saber si alguien me puede ayudar con las siguientes consultas:
- ¿ por qué hay tanta diferencia en los valores registrados en las tres máquinas ? Mem Used, Commited, Max, Thread used..... etc. (principalmente en lo que se refiere a MEMORIA)
- ¿ Por que los valores de memoria son los que más diferencias tienen entre las diferentes máquinas ? El resto de valores tambien tienen diferencias, pero se asemejan más.
- ¿ El proceso Test.jar llegará a consumir toda la memoria de la máquina ? ¿ Se puede arrancar el proceso para que este utilice unos recursos limitados ?
- ¿ quién se está llevando toda esa memoria ? ¿ por qué en ocasiones se libera "de repente" ?
- ¿ hay algo que esté haciendo o interpretando erróneamente ?
Lo cierto es que el mundo java en el cual aún estoy empezando me parece increiblemente bueno, pero todos estos detalles me parecen críticos para elegirlo para realizar cierto tipo de desarrollos ya que en base a estos resultados obtenidos de un proceso que no realiza ninguna acción (salvo abrir una ventana), no me inspira ninguna confianza para realizar por ejemplo una aplicación que tenga que estar 24x7 arrancada.
Quiero remarcar que una vez arrancado el ejecutable Test.jar, no se ha realizado ninguna acción sobre él. Solo me he limitado dejarlo arrancado para ver y comparar las gráficas de rendimiento.
Adicionalmente he realizado la misma prueba pero con un proceso de consola que escribe en pantalla "Hola Mundo !!!" cada 5 segundos (retardo forzado con un sleep(5000) y el resultado en la parte de memoris es similar (lo siento pero no me ha sido posible no poder adjuntar la gráfica)
Perdón por haberme extendido tanto pero no he sabido resumirlo más.
Muchas Gracias a todos
Un saludo
De antemano Gracias a la ayuda que me puedan dar.
He desarrollado una pequeña aplicación que consiste simplemente en un jframe con un borderlayout. En cada parte del borderlayout "agrego" un jpanel. Nada más.
Posterirmente genero un fichero Test.jar y lo lanzo en tres maquinas distintas (todas ellas con la misma versión de jdk "jdk1.7.0_80") y al abrir el jconsole para observar el comportamiento veo que el comportamiento es totalmente distinto (principalemtne en la parte de memoria) y con tendencia asecendente.
A continuación adjunto los detalles que considero más significativos para el análisis y las gráficas obtenidas a través de jconsole de cada una de las máquinas tras varias horas en ejecución:
-------------------------------------------------------------------------------
W10 Enterprise
16 GB de RAM
(I7-6700HQ 2,60 GHz) * 8

-------------------------------------------------------------------------------
W10 Enterprise
8 GB de RAM
(Intel Xeon 5160 3,00 GHz ) x 2

-------------------------------------------------------------------------------
LINUX MINT 18
4 GB de RAM
(I7-6700HQ 2,60 GHz) * 4

-------------------------------------------------------------------------------
Me gustaría saber si alguien me puede ayudar con las siguientes consultas:
- ¿ por qué hay tanta diferencia en los valores registrados en las tres máquinas ? Mem Used, Commited, Max, Thread used..... etc. (principalmente en lo que se refiere a MEMORIA)
- ¿ Por que los valores de memoria son los que más diferencias tienen entre las diferentes máquinas ? El resto de valores tambien tienen diferencias, pero se asemejan más.
- ¿ El proceso Test.jar llegará a consumir toda la memoria de la máquina ? ¿ Se puede arrancar el proceso para que este utilice unos recursos limitados ?
- ¿ quién se está llevando toda esa memoria ? ¿ por qué en ocasiones se libera "de repente" ?
- ¿ hay algo que esté haciendo o interpretando erróneamente ?
Lo cierto es que el mundo java en el cual aún estoy empezando me parece increiblemente bueno, pero todos estos detalles me parecen críticos para elegirlo para realizar cierto tipo de desarrollos ya que en base a estos resultados obtenidos de un proceso que no realiza ninguna acción (salvo abrir una ventana), no me inspira ninguna confianza para realizar por ejemplo una aplicación que tenga que estar 24x7 arrancada.
Quiero remarcar que una vez arrancado el ejecutable Test.jar, no se ha realizado ninguna acción sobre él. Solo me he limitado dejarlo arrancado para ver y comparar las gráficas de rendimiento.
Adicionalmente he realizado la misma prueba pero con un proceso de consola que escribe en pantalla "Hola Mundo !!!" cada 5 segundos (retardo forzado con un sleep(5000) y el resultado en la parte de memoris es similar (lo siento pero no me ha sido posible no poder adjuntar la gráfica)
Perdón por haberme extendido tanto pero no he sabido resumirlo más.
Muchas Gracias a todos
Un saludo
Valora esta pregunta


0