我正在用java制作一个桌面应用程序,并正在做一些内存优化。这让我遇到了两个在JVM中运行的线程,它们都被命名为:
RMI TCP 连接
而且它们都对堆增长做出了相当大的贡献(在我看来)
现在我不太了解,但TCP对我来说听起来像是互联网的东西。从我在谷歌上找到的内容来看,它与互联网上的序列化/反序列化有关。
但是我的应用程序不需要互联网,所以我想知道两件事:
我的工具是“Java visualVM”。虽然我突然想到,由于使用此工具,这两个线程是生成的,在这种情况下,我会觉得有点愚蠢。
这些线程用于向远程 JMX 客户机(在本例中为 Java VisualVM)提供来自 JVM 的数据。
断开连接后,线程就不应该再分配这么多数据了。
要验证这一点,您可以转到“线程”选项卡并查看 RMI TCP 连接线程的线程转储。您应该看到 RMI 操作触发了 JMX Bean。
RMI 是一个 Java API,它允许您在多台计算机上划分同一应用程序的各个部分的实现。你在项目中使用java.rmi库吗?