Java GC和内存使用跟踪

Java GC和内存使用跟踪,java,memory-management,memory-leaks,garbage-collection,Java,Memory Management,Memory Leaks,Garbage Collection,我知道GC会释放不再引用的对象的内存,但是有没有有效的方法来检查我是否有不再使用的对象的引用 关于如何避免留下对不再使用的对象的引用的提示将被大大低估 在这种情况下,使用Windows任务管理器是否有帮助?如果是这样的话,关于如何使用它批评我的程序的提示也会有所帮助 谢谢。支票很简单。您仍在使用所有引用的对象 “内存泄漏”的一个常见问题是将对象添加到集合中,而在不再需要它们时忘记清理它们。解决此问题的一种方法是使用weakreference或使用它们的集合,例如WeakHashMap。当其他地方

我知道GC会释放不再引用的对象的内存,但是有没有有效的方法来检查我是否有不再使用的对象的引用

关于如何避免留下对不再使用的对象的引用的提示将被大大低估

在这种情况下,使用Windows任务管理器是否有帮助?如果是这样的话,关于如何使用它批评我的程序的提示也会有所帮助


谢谢。

支票很简单。您仍在使用所有引用的对象

“内存泄漏”的一个常见问题是将对象添加到集合中,而在不再需要它们时忘记清理它们。解决此问题的一种方法是使用weakreference或使用它们的集合,例如WeakHashMap。当其他地方不再有引用时,这些将被清除

恕我直言,Windows任务管理器在这里更容易混淆而不是帮助


使用VIsualVM或像YourKit这样的商用内存分析器是检查内存消耗的最佳方法。

检查很简单。您仍在使用所有引用的对象

“内存泄漏”的一个常见问题是将对象添加到集合中,而在不再需要它们时忘记清理它们。解决此问题的一种方法是使用weakreference或使用它们的集合,例如WeakHashMap。当其他地方不再有引用时,这些将被清除

恕我直言,Windows任务管理器在这里更容易混淆而不是帮助

使用VIsualVM或商业内存分析器(如YourKit)是检查内存消耗的最佳方法。

将垃圾收集“不再使用”对象。“使用”意味着持有有力的参考。问题在于您不打算使用的对象,但它们仍然被错误地强烈引用

只有像VisualVM或JProfiler这样的Java探查器才能帮助您找到这些对象

显示如何使用查找内存泄漏的屏幕显示可用

免责声明:我的公司开发了JProfiler。

对“不再使用”的对象进行垃圾收集。“使用”意味着持有有力的参考。问题在于您不打算使用的对象,但它们仍然被错误地强烈引用

只有像VisualVM或JProfiler这样的Java探查器才能帮助您找到这些对象

显示如何使用查找内存泄漏的屏幕显示可用

免责声明:我的公司开发了JProfiler。

你可能会发现这篇文章很有用(我不知道get在这里广告的工具)

我不知道如何找到被引用但未被使用的对象——但有时,可以被垃圾收集的对象也会对您的程序产生影响——如果您创建大量对象并经常引发GC

要跟踪GC活动,只需使用java
-Xloggc:
。这将把GC活动记录到给定的文件中。您将获得应用程序在垃圾收集方面有多忙的第一印象

虽然我没有回答你的问题,但我希望这是一个有用的信息。

你可能会发现这篇文章很有用(我不知道get在这里宣传的工具)

我不知道如何找到被引用但未被使用的对象——但有时,可以被垃圾收集的对象也会对您的程序产生影响——如果您创建大量对象并经常引发GC

要跟踪GC活动,只需使用java
-Xloggc:
。这将把GC活动记录到给定的文件中。您将获得应用程序在垃圾收集方面有多忙的第一印象

虽然我没有回答你的问题,但我希望这对你是一个有用的信息