当前位置: 首页 > 知识库问答 >
问题:

如何强调JVM的GC?

商琛
2023-03-14

共有1个答案

陈成济
2023-03-14

导致GC花费大量时间的一种方法是几乎填满堆,然后通过分配和丢弃1大量临时对象来触发重复的垃圾收集。

典型的分代GC将其大部分时间用于跟踪非垃圾对象并将其从一个空间移动到另一个空间。当堆几乎充满了非垃圾对象,并且您反复触发GC时,它会做大量的工作,但获得的收益却很少(就回收的空间而言)。

另一种方法(假设未禁用显式GC)是重复调用system.GC()

 类似资料:
  • 问题内容: 一天前,经过几个月的正常工作,我们的Java应用偶尔会因以下错误而崩溃: 我查看了hs_err_pid2075.log,发现有一个活动线程正在处理网络通信。但是,最近几个月没有进行任何应用程序或环境更改。也没有任何负载增长。我该怎么做才能了解崩溃的原因?有没有一些通用的步骤来调查jvm崩溃? UPD http://www.wuala.com/ubear/public 问题答案: 崩溃发

  • sun.util.calendar.zoneinfo[id=“America/New_York”,offset=-18000000,dstsavings=3600000,usedaylight=true,transitions=235,lastrule=java.util.SimpleTimeZone[id=America/New_York,offset=-18000000,dstsavings=

  • 问题内容: 我几乎可以肯定这是不可能的,但是值得一试。 我正在为某个工具编写命令行界面。我说的是一个调用另一个Java应用程序的Java应用程序。该工具在执行后调用,从而终止了我自己的执行环境。我不要 有什么方法可以忽略来电吗? 问题答案: 是的,使用SecurityManager可以实现。尝试以下 在您的班级中,使用以下调用:

  • 1. 使用 * * 或 _ _ 包括的文本会被转换为 <em></em> ,通常表现为斜体: 这是用来 *演示* 的 _文本_ 这是用来 演示 的 文本 2. 使用 ** ** 或 __ __ 包括的文本会被转换为 <strong></strong>,通常表现为加粗: 这是用来 **演示** 的 __文本__ 这是用来 演示 的 文本 3. 用来包括文本的 * 或 _ 内侧不能有空白,否则 *

  • Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 * 或 _ 包围的字词会被转成用 <em> 标签包围,用两个 * 或 _ 包起来的话,则会被转成 <strong>,例如: *single asterisks* _single underscores_ **double asterisks** __double underscores__ 会转成: <em>single as

  • 我改进了代码,以便从垃圾收集器中获得更好的结果。 现在,当我调用时,它确实释放了所有内存。但是,当我在不调用 的情况下观察内存使用情况时,应用程序确实会保留并使用越来越多的内存。 这是否意味着我的改进正在起作用,我的所有引用都是正确的,我可以忽略JVM是如何自己释放内存的。或者,我的代码中是否存在其他问题,这些问题是JVM在不运行垃圾收集器的情况下保留更多内存的原因。