13得票3回答
在Java堆中,空间/代之间的比率是否恒定?

我看过 这篇文章 关于虚拟机垃圾收集器调优,以更好地理解 Java 垃圾回收器。每个空间都有一个 虚拟 堆空间区域,当堆空间需要接近最大堆大小时,它可以扩展到该区域。这可以在此图片中看到: (来源: oracle.com) 您可以使用 NewRatio 参数设置 年轻代 和 老年代(Ten...

11得票1回答
GC.SuppressFinalize对比非可终止对象的性能表现

具有GC.SuppressFinalize的可终止对象和普通不可终止对象是否相同?以下代码似乎证明它们在.NET 2和4上被不同对待:class Class1 { public Class1() { GC.SuppressFinalize(this); ...

7得票2回答
使用Boehm垃圾回收器仅针对程序的部分是否可能?

我已经阅读了关于Boehm-Demers-Weiser垃圾回收库的LinuxJournal文章。 我有兴趣在我的库中使用它,而不是使用自己的引用计数实现。 我只有一个问题:是否可能仅针对我的共享库使用gc,并仍在主应用程序中使用malloc / free?我不太理解gc如何检查堆栈,因此我担...

14得票2回答
.NET应用程序因GC线程死锁而挂起

我们的应用程序使用了托管 (C#) 和非托管 (C++) 代码混合,遇到了问题。基本上我们有一个exe调用一堆程序集,其中一个程序集是我们C++库的MC++包装器。该应用程序是控制台应用程序。大部分时间工作正常,但偶尔会无错误或异常而挂起。 使用内存转储和符号,我们能够在WinDbg中进行一...

14得票2回答
抑制 gc() 的输出结果

有没有可能在 R 中抑制所有 gc() 信息? 通常的方式,如 suppressWarnings(gc()) 或 suppressMessages(gc()) 不起作用。 gc() 本身有一个 verbose 选项,但它不起作用:> gc(verbose=TRUE) Garbage co...

15得票13回答
偶尔遇到长时间的垃圾回收延迟,为什么?

我在处理Java垃圾回收问题以及解释日志方面遇到了困难。 我的应用程序要求不得出现超过2秒的GC,最好少于100毫秒。 根据之前的一些建议,我正在尝试以下命令行选项: java -XX:MaxGCPauseMillis=100 -XX:NewRatio=9 -XX:+UseConcMark...

9得票2回答
如何强制回收无法取消引用的对象的垃圾?

我们正在使用EWS Managed API轮询MS Exchange以获取新的邮件消息,每次调用轮询方法(PullSubscription.GetEvents())时,Microsoft的API未能正确处理NetworkStream的释放,导致内存成比例地增加。这个问题之前曾经在这里讨论过,但...

56得票12回答
有没有Java垃圾回收日志分析工具?

我正在寻找一个工具或脚本,能够从我的Web应用程序中获取控制台日志,解析垃圾回收信息,并以有意义的方式显示出来。 我正在使用Sun Java 1.4.2 JVM,并启用了以下标志:-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails 日...

13得票5回答
Java应用程序中是否完全没有内存泄漏?

可能重复: 如何在Java中创建内存泄漏? Java中有一个“垃圾回收器”,但这是否意味着Java应用程序完全不存在内存泄漏?如果不是,它们如何发生以及为什么会发生? 我更感兴趣的是使用JavaSE的应用程序中的场景。

9得票3回答
在Java中零垃圾大字符串反序列化,巨型对象问题

我正在寻找一种在Java中从byte[]反序列化String且产生的垃圾最少的方法。由于我正在创建自己的序列化器和反序列化器,因此我完全可以在服务器端(即在序列化数据时)和客户端(即在反序列化数据时)实现任何解决方案。 我已经成功地通过迭代String的字符(String.charAt(i)...