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

2023-07-12Java开发问题
3

本文介绍了你如何从 Shell 强制垃圾收集?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

所以我在一个远程盒子上查看一个带有 jmap 的堆,我想强制对其进行垃圾收集.在不弹出 jvisualvm 或 jconsole 和朋友的情况下如何做到这一点?

So I am looking at a heap with jmap on a remote box and I want to force garbage collection on it. How do you do this without popping into jvisualvm or jconsole and friends?

我知道您不应该进行强制垃圾回收的做法——您应该弄清楚堆变大/增长的原因.

I know you shouldn't be in the practice of forcing garbage collection -- you should just figure out why the heap is big/growing.

我也意识到 System.GC() 实际上并不强制进行垃圾回收——它只是告诉 GC 你希望它发生.

I also realize the System.GC() doesn't actually force garbage collection -- it just tells the GC that you'd like it to occur.

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

Having said that is there a way to do this easily? Some command line app I'm missing?

推荐答案

你可以通过免费的 jmxterm 程序.

You can do this via the free jmxterm program.

像这样启动它:

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

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

From there, you can connect to a host and trigger 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/其他脚本的信息.我在 Python 中使用了 popen2 或在 Perl 中使用了 open3.

Look at the docs on the jmxterm web site for information about embedding this in bash/perl/ruby/other scripts. I've used popen2 in Python or open3 in Perl to do this.

更新:这是一个使用 jmxterm 的单行:

UPDATE: here's a one-liner using jmxterm:

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

这篇关于你如何从 Shell 强制垃圾收集?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据?
How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13