我正在用 java 制作一个桌面应用程序,并且正在做一些内存优化。这让我遇到了在 JVM 中运行的两个线程,它们都命名为:
RMI TCP 连接
它们都对堆增长做出了相当大的贡献(在我看来)
现在我知道的不多,但 TCP 对我来说听起来像是一些互联网的东西。从我在谷歌上找到的内容来看,它与互联网上的序列化/反序列化有关。
但我的应用程序不需要互联网,所以我想知道两件事:
- 它们在我的 JVM 中是什么以及它们在做什么?
- 我能以某种方式摆脱它们吗?
我的工具是“Java visualVM”。我突然想到这两个线程是由于使用此工具而产生的,在这种情况下我会觉得有点愚蠢。
最佳答案
线程用于为远程 JMX 客户端(在您的情况下为 Java VisualVM)提供来自 JVM 的数据。
一旦你断开线程不应该再分配这么多的数据。
要验证这一点,您可以转到“线程”选项卡并查看 RMI TCP 连接线程的线程转储。您应该看到 RMI 操作触发了 JMX bean。
关于java - 什么是 RMI TCP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40793580/