当前位置: 首页 > 面试题库 >

您如何从Shell强制垃圾收集?

殳宸
2023-03-14
问题内容

因此,我正在远程容器上查看带有jmap的堆,并且我想对其进行强制垃圾收集。如何在不弹出jvisualvm或jconsole和朋友的情况下执行此操作?

我知道您不应该进行强制垃圾回收的实践-您应该弄清楚为什么堆很大/越来越大。

我还意识到System.GC()实际上并没有强制垃圾回收-它只是告诉GC您希望它发生。

话虽如此,有没有一种方法可以轻松地做到这一点?我缺少一些命令行应用程序?


问题答案:

您可以通过免费的jmxterm程序执行此操作。

像这样启动它:

java -jar jmxterm-1.0-alpha-4-uber.jar

从那里,您可以连接到主机并触发GC:

$>open host:jmxport
#Connection to host:jmxport is opened
$>bean java.lang:type=Memory
#bean is set to java.lang:type=Memory
$>run gc
#calling operation gc of mbean java.lang:type=Memory
#operation returns: 
null
$>quit
#bye

请查看jmxterm网站上的文档,以获取有关将其嵌入bash / perl / ruby​​ /
other脚本中的信息。我在Python中使用过popen2或在Perl中使用过open3来做到这一点。

更新: 这是使用jmxterm的单线:

echo run -b java.lang:type=Memory gc | java -jar jmxterm-1.0-alpha-4-uber.jar -n -l host:port


 类似资料:
  • 问题内容: 即使很棘手,也可以在Java中强制进行垃圾回收吗?我知道;,;但是他们只建议做GC。我该如何强制GC? 问题答案: 最好的选择是调用,这只是向垃圾收集器提示你要它进行收集。由于垃圾收集器是不确定的,因此无法强制立即收集。

  • 主要内容:JEP 189 : Shenandoah:一个低暂停时间的垃圾收集器(实验性),JEP 346 : 及时返回未使用的已提交内存,JEP 344:可中止的混合集合Java 12 为其垃圾收集算法引入了多项增强功能。 JEP 189 : Shenandoah:一个低暂停时间的垃圾收集器(实验性) 引入了一个实验性的低暂停时间垃圾收集器 Shenandoah 以减少 GC 暂停时间。它与运行 Java 线程并行工作。这有助于减少 GC 对堆大小的依赖性并使其保持一致。现在垃圾收集暂停时间对于

  • 尽管我的最大可用堆大小似乎大于我认为我需要的粗略内存量,但我还是尝试通过来增加堆大小([4])。虽然这解决了我的问题,但最好知道是否有更好的方法来创建这种随机数据,从而避免我不得不增加JVM可用的内存?因此,我有以下三个问题,如果有人能回答,我将不胜感激: > 在Scala中,尤其是在Scala shell中,垃圾回收何时发生?在上面的命令中,有什么可以收集,那么为什么要调用GC(对不起,第二部分

  • 主要内容:JEP 304 : 垃圾收集器接口,JEP 307 : G1 的并行 Full GCJEP 304 : 垃圾收集器接口 在 Java 10 之前,GC(垃圾收集器)实现组件分散在代码库中,不容易替换。在 Java 10 中,引入了 Garbage-Collector 接口,以便可以插入替代的 GC 实现。它还有助于将代码库与不同的垃圾收集实现隔离。此功能是 JEP 304 的一部分。 JEP 307 : G1 的并行 Full GC Java 9 引入了 G1(垃圾优先)垃圾收集

  • 问题内容: 有人可以解释一下G1垃圾收集器的工作原理吗?我还无法在任何地方找到任何全面,易于理解的描述。 谢谢 问题答案: 收集器将堆分成固定大小的区域,并跟踪这些区域中的实时数据。它将一组指针(“记住的集”)保留在区域内和区域外。当认为有必要使用GC时,它将首先收集实时数据较少的区域(因此,“垃圾优先”)。通常,这意味着一步就可以收集整个区域:如果进入一个区域的指针数量为零,则无需对该区域进行标

  • 问题内容: 我有一段代码可以在内存中加载很大的图像。所以打电话似乎是合理的事情 在加载图像之前。据我所知,它毫无问题。 昨天,我决定使用一个名为FindBugs的非常有用的软件来扫描您的代码并报告可能导致错误或通常不建议使用的策略的问题。问题是我提到的这段代码得到了报告。描述是这样的: …强迫垃圾收集;除了基准测试代码外,都非常可疑 并继续阐述: 代码显式调用垃圾回收。除了基准测试中的特定用途外,