【问题标题】:what is RMI TCP connection什么是 RMI TCP 连接
【发布时间】:2021-07-12 00:42:00
【问题描述】:

我正在用 java 制作一个桌面应用程序,并且正在做一些内存优化。这让我遇到了在 JVM 中运行的两个线程,它们都命名为:

RMI TCP 连接

它们都对堆增长做出了相当大的贡献(在我看来)

现在我知道的不多,但 TCP 对我来说听起来像是一些互联网的东西。从我在谷歌上找到的内容来看,它与互联网上的序列化/反序列化有关。

但我的应用程序不需要互联网,所以我想知道两件事:

  1. 它们在我的 JVM 中是什么以及它们在做什么?
  2. 我能以某种方式摆脱它们吗?

我的工具是“Java visualVM”。我突然想到这两个线程是由于使用此工具而产生的,在这种情况下我会觉得有点愚蠢。

【问题讨论】:

  • 你是对的。它们是使用此工具产生的。
  • 太好了,谢谢。正确和愚蠢。如果可以的话,我会将其标记为答案。

标签: java optimization memory heap-memory java-threads


【解决方案1】:

线程用于为远程 JMX 客户端(在您的情况下为 Java VisualVM)提供来自 JVM 的数据。

一旦你断开线程不应该再分配这么多的数据。

要验证这一点,您可以转到“线程”选项卡并查看 RMI TCP 连接线程的线程转储。您应该看到 RMI 操作触发了 JMX bean。

【讨论】:

    【解决方案2】:

    RMI 是一种 Java API,它允许您在多台计算机上划分同一应用程序的各个部分的实现。 您在项目中使用 java.rmi 库吗?

    【讨论】:

    • 不,我使用的是 lwjgl 3.0 框架。可能是他们这样做。我会检查他们的论坛。
    • 在其源代码中找不到任何对 RMI 的引用
    • 在 google 中,我发现了一些关于使用 lwjgl 库时 rmi 异常的消息。显然,在使用本机 C 库时,Java 出于某种原因使用 rmi 连接或类似的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2016-08-04
    • 2011-03-05
    • 1970-01-01
    • 2022-12-10
    • 1970-01-01
    相关资源
    最近更新 更多