Je bosse actuellement sur un logiciel JAVA fournissant des comparatifs entre divers algorithmes.Celui-ci utilise une interface par onglets (plusieurs algorithmes peuvent donc tourner en même temps)
Chaque algorithme est exécuté dans un nouveau Thread.
J'aimerais afficher tout le long de l'exécution l'occupation mémoire de chacun des algorithmes lancés. J'ai bien trouvé des méthodes pour récupérer l'espace mémoire utilisé par l'application complète mais rien pour le moment me fournissant l'espace utilisé par certains Threads(/algo) de mon application.
Est ce que l'un d'entre vous aurez une piste à me proposer afin de pouvoir fournir cette occupation mémoire?
Que ce soit à l'aide d'un module déjà existant ou juste une idée pour calculer moi-même cette valeur, je suis preneur.
D'après mes recherches, on ne peut pas attribuer un espace mémoire a tel ou tel Thread, la solution serait donc de lancer chaque algorithme dans un nouveau jvm?Si oui comment procéder pour les lancer à partir de l'application principale et comment gérer simplement la communication entre l'application et chaque algorithme?
Pour moi un Thread c'est deux contextes d'exécution pour une mémoire. Je vois pas en quoi comment tu pourrais différencier la mémoire prise par les deux threads.
je pense que tu est obligé de lancer tes algos séparément, mais me demande pas comment.
Salut tu devrais jeter un coup d'oeil a la commande jconsole. Elle est livrée en standard avec le jdk. Ensuite tu lances tes algos l'un apres l'autre (avec un garbage collect entre les 2 pour etre sur de ne pas compter les résidus mémoire du 1er algo comme utilisé par le second) et tu suis la courbe sur l'onglet memory.