Je fais une application de bureau en Java et je fais quelques optimisations de mémoire. Cela m'a fait tomber sur deux threads en cours d'exécution dans la JVM, tous deux nommés:
RMI TCP
Et ils contribuent tous deux considérablement à la croissance du tas (à mon avis)
Maintenant, je ne sais pas grand-chose, mais TCP me semble être quelque chose d'internet. D'après ce que j'ai réussi à trouver sur Google, cela a quelque chose à voir avec la sérialisation/désérialisation sur le l'Internet.
Mais mon application n'a pas besoin d'Internet, je voudrais donc savoir deux choses:
Mon outil a été "Java visualVM". Une pensée m'a traversé l'esprit que les deux fils sont générés à la suite de l'utilisation de cet outil, auquel cas je me sentirai un peu stupide.
Les threads sont utilisés pour alimenter un client JMX distant (dans votre cas Java VisualVM) avec les données de votre JVM.
Une fois que vous vous déconnectez, les threads ne doivent plus allouer autant de données.
Pour vérifier cela, vous pouvez aller dans l'onglet Threads et regarder le vidage d'un thread RMI TCP thread de connexion. Vous devriez voir que les opérations RMI déclenchent des beans JMX.
RMI est une API Java, qui vous permet de diviser l'implémentation de parties de la même application sur plusieurs ordinateurs. Utilisez-vous la bibliothèque Java.rmi dans votre projet?