如果我尝试在VisualVM的帮助下分析应用程序(在Eclipse下准备,但从命令行运行),我会收到以下错误消息同时,项目文件夹被新创建的类文件弄脏了。尽管它们已经存在于target/classes中。项目结构是Maven的,即当前目录下有一个目录target/classes,我使用下面的命令来运行应用程序java-Xmx16g-cptarget/classestests.Runner01如何解决?更新传统的java项目也是如此。在它下面是填充的类文件的图片,它位于不应出现的位置 最佳答案 这里https://netbeans.or
如果我尝试在VisualVM的帮助下分析应用程序(在Eclipse下准备,但从命令行运行),我会收到以下错误消息同时,项目文件夹被新创建的类文件弄脏了。尽管它们已经存在于target/classes中。项目结构是Maven的,即当前目录下有一个目录target/classes,我使用下面的命令来运行应用程序java-Xmx16g-cptarget/classestests.Runner01如何解决?更新传统的java项目也是如此。在它下面是填充的类文件的图片,它位于不应出现的位置 最佳答案 这里https://netbeans.or
当我从EclipseHelios启动我的java应用程序时,我在visualVM上的本地应用程序列表中看到它。但是,我转到Profiler选项卡,但无法按CPU或内存标准进行分析。我收到以下消息:“警告!为此JVM启用了类共享。这可能会在分析应用程序时导致问题并最终可能导致它崩溃。请参阅VisualVM故障排除指南以获取更多信息和解决问题的步骤:https://visualvm.dev.java.net/troubleshooting.html#xshare。”在我的应用程序的eclipse启动器中,我将-Xshare:off添加到VM_Arguments但没有成功。使用的JDK:jd
我正在尝试调试应用程序中的永久生成错误。我正在运行VisualVM来分析应用程序,并获取了内存快照的堆转储。将快照加载到VisualVM中进行分析,我目前可以在类列表中看到几个类出现了几次,所有类都列出了0个实例,0个大小——我只期望这些类中的一个(可能链接到它的类加载器)-有什么方法可以确定什么仍然持有对这些没有实例的类的引用?如果我可以加载转储(.hprof)来分析保存引用的内容,我很乐意使用其他工具。谢谢! 最佳答案 好吧,说“使用MAT”并不能真正回答问题!要在VisualVM中执行此操作,在Sampler或Profiler
我正在尝试使用EclipseVisualVMlauncher.它看起来很不错,只是如果VisualVM来不及对我的应用程序进行任何分析,它似乎会生成一个实例。我的应用程序甚至在分析器初始化之前就完成了执行;一旦启动,就会弹出一个错误窗口,显示:无法打开请求的应用程序。然后它显示运行Eclipse的VM(标记为“org.eclipse.equinox.launcher.Main”)。我怎样才能让它等待我的申请并进行适当的分析? 最佳答案 这可能为时已晚,但我遇到了同样的问题,设置断点然后以Debug模式启动根本没有帮助。我最终发现Vi
我有一个内存转储,是我从一个垂死的应用程序中创建的。它已消耗所有可用堆(-Xmx1024m)。它使用com.gargoylesoftware.htmlunit.WebClient来抓取网页。每分钟发出几个http请求,几天后就死了。正如我从转储中看到的那样,它有大约1750个HtmlPage类实例,每个实例都带有相关对象的色调,包括已抓取页面的全部内容。我不明白为什么HtmlPage没有被垃圾回收。我已经调查了实例引用,但我没有看到任何我的代码持有对它的引用,VisualVM说“找不到GC根”。据我了解,这应该意味着该对象符合gc的条件,但它不起作用。该应用程序作为一个简单的独立进程运
我是VisualVM的新手。有没有办法自动启动CPU分析?我的问题是我从Eclipse启动了一个程序,它运行了大约。20秒。当我可以打开选项卡并单击CPU分析时,应用程序几乎已完成处理。 最佳答案 我不知道如何自动开始分析,但我有一个解决方法。您可以在程序的main开始处设置一个断点,然后在Debug模式下从Eclipse启动该程序。在VisualVM中开始分析后,在Eclipse中恢复您的程序。 关于java-使用VisualVM自动启动CPU分析,我们在StackOverflow上找
使用VisualVM分析应用程序的CPU时间时,可以在拍摄快照后看到“调用树”选项卡。但在我的例子中,调用树只显示了一些RMITCP类和方法,而不是我的应用程序的单个类。如何显示正确的调用树? 最佳答案 可能性Profiler设置将您的类(class)排除在外。在Profiler设置中更改排除项。您的应用程序在分析器运行时处于空闲状态。附加分析器,然后使程序执行您要分析的代码。您可能正在分析错误的JVM。RMI使得调用另一个JVM变得非常容易。也许您需要分析该RMI连接的另一端。Profiler选项卡上有一个“设置”复选框。如果您选
我在监控远程Tomcat进程时遇到问题。我正在尝试使用Java6版本的JConsole/JVisualVM。我在具有适当安全策略的远程服务器上运行jstatd。进程启动,TCP连接可用。当我尝试通过JConsole连接时,我得到'ConnectionFailed:jmxrmi'。当我尝试通过VisualVM连接时,我添加了主机名,我的右键单击选项是“添加JMX连接”。从文档中我不清楚这是否是我希望看到的。当我尝试连接时,我得到:'Cannotconnectusingservice:jmx:rmi:///jndi/rmi://:/jmxrmi'.因此,文档建议我只需要让jstatd远程运
本文介绍了如何在JavaVisualVM中查看内存分配堆栈跟踪:http://rejeev.blogspot.de/2009/04/analyzing-memory-leak-in-java.html简而言之,在JavaVisualVM选项中定义自定义预设,并选中内存设置选项卡中的“记录分配堆栈跟踪”复选框。现在,当我选择自定义预设并开始内存分析时,我仍然无法查看内存分配堆栈跟踪。没有文章中描述的右键单击项目操作“拍摄快照并显示分配堆栈跟踪”,也没有类似的操作。我正在使用VisualVM1.7。如何查看这些分配堆栈跟踪? 最佳答案