Salut,
Je développe une appli de simulations numériques, avec une interface graphique "en temps réel" basée sur JFreeChart.
En début de simulation, je constate des "à-coups" gênants, puis le déroulement de la simulation devient plus fluide.
Ainsi :
L'analyse de la mémoire montre que la gestion de la mémoire allouée à l'application est responsable de ces "à-coups" :
Pour essayer d'obtenir une simulation plus fluide, j'augmente la mémoire allouée à l'application (-Xmx2048m -Xms1024m).
Je relance, et j'obtiens :
et :
La simulation est beaucoup plus fluide, parce qu'il n'est plus nécessaire d'augmenter la taille du heap en début de simulation.
En revanche, le rythme des collectes est beaucoup plus élevé, avec pour résultat, au total, un ralentissement de la simulation :
- dans la première configuration, la durée d'une simulation tourne autour de 60 secondes,
- dans la deuxième configuration, la durée d'une simulation tourne autour de 45 secondes.
Pourquoi le fait d'avoir alloué plus de mémoire à l'application augmente-t-il la fréquence des collectes ?
Que faire pour concilier fluidité et performance ?
Partager