迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 强制垃圾收集

作者:迹忆客 最近更新:2023/07/16 浏览次数:

本文介绍如何在 Java 中强制进行垃圾回收。


Java 强制垃圾收集

每当堆利用率接近100%时,OutOfMemoryError的风险就会增加到最大。 那时,JVM将需要强制进行垃圾回收并释放内存。

大多数时候,我们无法强制 JVM 进行垃圾收集,但我们可以在需要时使用一些方法来执行垃圾收集。

本文介绍了 Java 中垃圾收集的不同方法。

Java中调用System.gc()进行垃圾回收

可以在 Java 代码中的任何位置调用 System.GC() 方法来执行垃圾收集。 它将优先进行垃圾收集,无论何时调用,垃圾收集都会在几秒钟内发生。

该方法的语法是:

System.gc();

我们只需调用 System.gc() 即可在代码中的任意位置执行垃圾回收。 这将以类似的方式强制垃圾收集。

Java中调用Runtime.getRuntime().gc()进行垃圾回收

Runtime.getRuntime().gc() 将调用 System.gc(),因此它以类似的方式工作来确定垃圾收集的优先级。 Runtime.getRuntime() 在 Java 代码中运行终端命令。

Runtime.getRuntime().gc()System.gc 方法是相同的。 该方法的语法是:

Runtime.getRuntime().gc();

只要像语法一样调用这个方法,JVM就会执行垃圾回收来释放内存空间。

在Java中使用jcmd强制垃圾收集

jcmd Java 诊断命令是 JDK 中的一个内置实用程序,可触发垃圾收集例程。 当 JVM 可以安全地安排暂停时,就会触发此垃圾收集。

如果 JVM 无法执行暂停,该命令将抛出与 jmap 相同的错误。

该命令的语法是:

jcmd 1234 GC.run

其中数字是进程 ID,GC.run 用于调用垃圾收集。

使用 Java Mission Control 或 JConsole 在 Java 中强制垃圾收集

Java Mission Control 和 JConsole 提供了一个与 jcmd 命令交互的用户友好界面。 Java Mission Control 或 JConsole 可以强制 JVM 进行垃圾回收。

JConsole 工具在其内存管理页面上提供了一个名为 Run Garbage Collection 的按钮。 通过点击它,我们可以强制JVM执行垃圾收集。

Java Mission Control 可以帮助开发人员选择任何 jcmd 功能,其中还包括 GC.run,只需单击按钮即可执行。

这两个工具都会在幕后调用 jcmd 垃圾收集命令。

在Java中使用jmap强制垃圾回收

JMAP(Java内存映射)提供了打印堆直方图的方法。 并且每当调用 jmap 命令时,它都会强制执行垃圾收集例程,这不被认为是强制垃圾收集的正确方法。

如果 JVM 有工作负载并且无法执行垃圾收集,那么 jmap 命令将抛出错误。

查看命令:

jmap -histo:live 1234

其中 live 是直方图选项,前面的数字是进程 ID。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java迭代器remove()方法

发布时间:2023/07/17 浏览次数:117 分类:Java

Java 开发人员经常需要在迭代时从 ArrayList 中删除元素或对象。在本文中,我们将了解迭代器的remove()方法和集合的remove()方法的工作原理有何不同。

查找 Java 中的内存泄漏

发布时间:2023/07/17 浏览次数:96 分类:Java

本文将教我们如何查找Java内存泄漏。未使用的项目占用额外的内存空间称为内存泄漏。 内存泄漏是有问题的,因为它们会堵塞内存资源并随着时间的推移降低系统性能。

Java 8 Stream 中的属性不同

发布时间:2023/07/17 浏览次数:171 分类:Java

本文通过属性演示了在 Java 中使用流的独特功能。Java 8 Stream 中的属性不同 Java 8 Stream 有一个 distinct() 方法,可以过滤列表中的重复项。

在 Java 中将 Iterable 转换为 Stream

发布时间:2023/07/17 浏览次数:51 分类:Java

在本文中,我们将学习一种将 Iterable 转换为 Stream 的方法。在 Java 中使用 StreamSupport.stream() 方法将 Iterable 转换为 Stream

在 Eclipse 中更改 Java 版本

发布时间:2023/07/17 浏览次数:110 分类:Java

用户在处理特定项目时可能需要降级或升级 Java 版本。 在这种情况下,Eclipse IDE 允许我们更改特定项目的 JDK 版本。本文介绍了在 Eclipse IDE 中更改 Java 版本的分步指南。在 Eclipse 中下载并添加

在 Java 中使用 Fiddler 捕获 HTTPS 流量

发布时间:2023/07/17 浏览次数:59 分类:Java

Fiddler是一个Web调试代理工具,可以帮助开发人员调试Web应用程序。 它允许捕获网络流量并监控传入和传出的数据。本文将教我们设置Fiddler来捕获HTTPS流量。

用 Java 构建工具

发布时间:2023/07/17 浏览次数:53 分类:Java

本文主要关注Java构建工具。 首先,我们将了解什么是构建工具,然后我们将讨论 5 个最流行的 Java 工具。什么是构建工具 无论开发人员使用哪种编程语言来开发软件,构建工具在自动化构建过

Java 中的警报弹出窗口

发布时间:2023/07/17 浏览次数:149 分类:Java

Swing 库用 Java 显示警报弹出窗口。 本教程演示如何用 Java 创建警报消息。Java 中的警报弹出窗口 如上所述,Swing 库用 Java 创建警报弹出窗口。

Java 中的背景颜色

发布时间:2023/07/17 浏览次数:108 分类:Java

本文介绍如何在 Java 中更改背景颜色。Java 中的背景颜色 在 Java GUI 中更改背景颜色是一个简单的操作。 setBackground() 方法用于设置和更改 Java 中 JFrame 的背景颜色。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便