如果我在cygwin控制台中启动java进程,然后启动visualVm,则后者无法看到前者.
如果我在Dos控制台中启动相同的过程,visualvm认为它很好.我在jdk1.6.0_25.这在win7 32b和win7 64b都有64b jvm发生.
任何人都可以想到解释/解决方法?
我正在尝试使用在本地运行的JVisualVM(JDK 1.7.0 - 06,64位)将在Apache Tomcat(7.0.34)中运行的Servlet作为Windows 7(64位)上的服务进行分析.
最初我遇到了Tomcat没有显示在本地应用程序列表中的问题,因为不同的"java.io.tmp"属性错误/功能,但在本论坛的几个帖子中建议解决它.
但是,虽然Tomcat进程现在在本地应用程序列表中显示为"本地应用程序",但是当我打开进程时,没有用于Monitor,Threads,Sampler或Profile的选项卡 - 只有JVM参数和Sytem属性子菜单的Overview选项卡-tabs显示可怕的"不支持此jvm"消息.
我仔细检查过以下几项:
最后几点:
如果有人已经解决了这个问题,那么解决方案将会非常受欢迎.但是,只知道其他人是否正在运行相同的配置 - Windows 7 64位,Java 7 64位,Tomcat 7作为服务运行 - 成功.
更新:我没有作为服务运行,而是使用批处理文件运行Tomcat,并且完美运行:作为服务运行的是什么?
我正在使用Visual VM监视我正在运行的java应用程序:http://visualvm.java.net/
我用-Xmx128m强调内存使用量.
运行时,我看到堆大小增加到128m(如预期的那样),但是在遇到java堆空间错误之前,使用的堆收敛到大约105m.
为什么这些剩下20米,没用过?
本文介绍如何在Java VisualVM中查看内存分配堆栈跟踪:http://rejeev.blogspot.de/2009/04/analyzing-memory-leak-in-java.html
简而言之,在Java VisualVM选项中定义自定义预设,并选中内存设置选项卡中的"记录分配堆栈跟踪"复选框.
现在,当我选择自定义预设并启动内存分析时,我仍然无法查看内存分配堆栈跟踪.没有右键单击项目操作"拍摄快照并显示分配堆栈跟踪",如文章中所述,也没有类似的内容.我正在使用VisualVM 1.7.
如何查看这些分配堆栈跟踪?
正如我在运行Web应用程序5天后发布的性能下降,如何发现瓶颈?,我有一个问题,一个应用程序运行一段时间后变慢.
我让VisualVM运行并在不同时间之间创建了一个快照.现在应用程序真的很慢,但我不知道如何发现瓶颈.它们彼此之间没有太多差异,唯一增长的是Heap,它在一段时间后成功地被垃圾收集.
谁能给我一些指示?
以下是快照(应用):
[1] http://www.2shared.com/file/W4XJ6HtE/application-1314108550032.html
[2] http://www.2shared.com/fadmin/22521338/f512f97e/application-1314097232727.apps.html
谢谢!
编辑:仔细观察,我注意到CPU甚至没有被太多使用..系统真的很慢!
问题是:VisualVM采样器按时间显示调用树.对于某些方法,采样器仅显示"自我时间",因此我看不出是什么使这种方法变慢.这是一个例子.
如何增加剖析的深度?
使用VisualVM分析应用程序的CPU时间时,可以在拍摄快照后看到"调用树"选项卡.但在我的情况下,调用树只显示一些RMI TCP类和方法,但没有我的应用程序的单个类.
如何显示正确的调用树?
我正在尝试使用visualVM来分析我正在使用Intellij进行调试的简单Java应用程序.我启动应用程序来调试,打开visualVM,我可以在列表中看到我的应用程序.我可以打开它; 但是,我无法对我的应用程序使用抽样或分析.其他应用程序,如Intellij,可以很好地分析.当我检查visualVM日志时,我看到:
INFO [com.sun.tools.visualvm.jmx.impl.JmxModelImpl]:connect(2749)com.sun.tools.attach.AttachNotSupportedException:无法打开套接字文件:目标进程未响应或未加载HotSpot VM
更多信息:操作系统=在x86_64 Java上运行的Mac OS X版本10.9.1; VM; 供应商= 1.7.0_51; Java HotSpot(TM)64位服务器VM 24.51-b03; Oracle Corporation Intellij IDEA = 13.0.2
如果有人有这个工作,请告诉我你是如何得到它的.我也想使用Intellij VisualVMLauncher,如果我能搞定的话.
如果我Class$N
在使用Eclipse时只获得了类的名称,而没有通过代码并计算每个匿名类,我如何找到一个匿名内部类?是否有"跳转到匿名类声明"功能,我可以在其中输入$后缀号码?
Search-> Java功能没有帮助.
我正在使用VisualVM来查找CPU热点.我的热点是一个名为SomeClass $ 5的匿名类.VisualVM无法找到我的类的源代码,而我(以及其他人)无法找到如何将源附加到VisualVM,如此处和此处所示 .启动器插件无法解决此问题.
计算匿名声明不是一种选择,因为从长远来看,人为错误排序数百行的风险可能导致浪费大量时间试图处理错误的匿名类,只是为了发现它是错误的类.
作为一种解决方法,我正在用'System.out.println("this="+this.getClass().getName());'
一种方法测试类, 以确保它是正确的,但必须有一个更好的方法.
我在运行 jvisualvm 时遇到以下问题 -
机器上设置的Java相关环境变量
以下是PATH
变量详细信息,没有提及路径C:\apps\Java8
Path=C:\ProgramData\Oracle\Java\javapath;
C:\windows\system32;
C:\windows;
C:\windows\System32\Wbem;
C:\windows\System32\WindowsPowerShell\v1.0\;
C:\windows\System32\OpenSSH\;
C:\Program Files\Microsoft\Web Platform Installer\;
C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files\Microsoft DNX\Dnvm\;
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;
D:\apps\gradle-5.5.1-bin\bin;
D:\apps\apache-ant-1.10.5\bin;
C:\apps\Java\Java8\bin;
C:\Program Files\nodejs\;
Run Code Online (Sandbox Code Playgroud)
当我运行 jvisualvm.exe 时,出现以下错误,从该错误看来 jvisualvm 正在查找某些配置文件来定位 JDK 主路径:
在此消息中,我单击“是”按钮,然后收到以下错误,提示您正在运行 VisualVM 正在从 JRE 运行 -