如何找到创建垃圾对象的代码

时间:2014-11-27 02:27:57

标签: java garbage-collection jvm heap-memory

应用程序正在创建3GB的垃圾对象,这会收集垃圾。这个创建垃圾的过程及其后续收集每30分钟重复一次。我使用堆转储并且可以识别无法访问的对象但是无法识别创建这些UnReachable对象的代码。如果有办法在没有购买Jprofiler / YourKit的情况下找出对此负责的代码,请告诉我。

2 个答案:

答案 0 :(得分:1)

您可以随时使用Java Flight recorder和Java Mission Control代替Jprofiler / YourKit。从Oracle JDK 7 Update 40(7u40)版本开始支持它。除非你的版本低于此版本。

http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html

https://docs.oracle.com/javacomponents/jmc.htm

答案 1 :(得分:0)

您可以尝试进行堆转储并将其提供给内存分析工具: https://eclipse.org/mat/ 它应该给你一些关于你有很多东西以及可能来自哪里的想法。