Java GC和内存使用跟踪
我知道GC会释放不再引用的对象的内存,但是有没有有效的方法来检查我是否有不再使用的对象的引用 关于如何避免留下对不再使用的对象的引用的提示将被大大低估 在这种情况下,使用Windows任务管理器是否有帮助?如果是这样的话,关于如何使用它批评我的程序的提示也会有所帮助Java GC和内存使用跟踪,java,memory-management,memory-leaks,garbage-collection,Java,Memory Management,Memory Leaks,Garbage Collection,我知道GC会释放不再引用的对象的内存,但是有没有有效的方法来检查我是否有不再使用的对象的引用 关于如何避免留下对不再使用的对象的引用的提示将被大大低估 在这种情况下,使用Windows任务管理器是否有帮助?如果是这样的话,关于如何使用它批评我的程序的提示也会有所帮助 谢谢。支票很简单。您仍在使用所有引用的对象 “内存泄漏”的一个常见问题是将对象添加到集合中,而在不再需要它们时忘记清理它们。解决此问题的一种方法是使用weakreference或使用它们的集合,例如WeakHashMap。当其他地方
谢谢。支票很简单。您仍在使用所有引用的对象 “内存泄漏”的一个常见问题是将对象添加到集合中,而在不再需要它们时忘记清理它们。解决此问题的一种方法是使用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活动记录到给定的文件中。您将获得应用程序在垃圾收集方面有多忙的第一印象
虽然我没有回答你的问题,但我希望这对你是一个有用的信息