我正在尝试分析由"mvn jetty:run"运行的应用程序,当我将VisualVM连接到它并单击Profile jetty崩溃时:
Profiler Agent: Waiting for connection on port 5140 (Protocol version: 8)
Profiler Agent: Established local connection with the tool
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6da5e5d4, pid=5124, tid=5704
#
# JRE version: 6.0_16-b01
# Java VM: Java HotSpot(TM) Client VM (14.2-b01 mixed mode windows-x86 )
# Problematic frame:
# V [jvm.dll+0x1ae5d4]
#
# An error report file with more information is saved as:
# c:\dev\workspaces\credentials\credentialsgui\hs_err_pid5124.log …Run Code Online (Sandbox Code Playgroud) 当我尝试使用Java VisualVM配置我的Java应用程序时,线程,CPU和内存分析选项卡不会显示.除了"-Djava.library.path = lib/native"之外,我的程序没有任何JVM参数,是否需要使用特定的参数来启用性能分析?
其他信息:
当使用VisualVM进行应用程序的cpu-profiling时,我遇到了错误
"Profiler代理错误:带消息:重新定义失败,错误66".
在那之后,它将所有类文件从构建路径复制到我从中启动应用程序的位置.
我试图找到一些关于它的信息,错误代码意味着(根据JVMTI文档):
JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED(66)
直接超类对于新类版本是不同的,或者直接实现的接口集是不同的.
由于分析通常适用于我的环境(Java build 1.7.0_09-b05,Fedora 17 64位).我在Visualvm-docs中尝试过"-Xshare:off",没有任何影响.
由于这是我遇到此问题的唯一Java-SE应用程序,它似乎与我正在使用的库有某种关联.以下是我的类路径:
任何人都可以看到库和错误之间的相关性吗?我真的不知道了.
我正在关注以下网站 http://visualvm.java.net/eclipse-launcher.html ,将VisualVM安装到Eclipse Helios V3.6中,为此我提到了我下载的visualvm_launcher_u1_eclipse_36以及Eclipse菜单窗口--->首选项 - - >已安装的JRE ---> JRE设置中的指向JDK路径C:\ Program Files\Java\jdk1.6.0_27
但是当我试图将这个VisualVM安装到Eclipse中时
Eclipse菜单--->安装新软件--->添加 - >存档选项
我得到以下例外
找不到jar文件:file:/ D:/VisualVM/visualvm_launcher_u1_eclipse_36.zip!/
请参阅与例外相关的图像.

请帮我.我在VisualVM中分析我的堆转储.
如何获得值=="0"的所有字符串的数量?我有以下查询:
select count(s) from java.lang.String s where s.toString().equals("0");
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我想收到所有字符串的数量为"0"值,如果它们的大小可能在内存中.
我正在尝试在远程 Java-in-Docker 进程上进行一些 CPU 采样。
我已经在这里查看了相关问题,并尝试了一切,但无济于事,所以我在这里发布我的设置。
我有一个 Java 进程 (openjdk-8) 在 Google 计算引擎 (GCE) 实例上的 Docker 容器中运行。GCE实例和容器都运行Debian-9。我想将 VisualVM 或 JConsole 连接到我的 Java 进程。
我可以在本地运行我的 docker 容器,并使用 localhost:9010 连接 VisualVM 和 jconsole。
我使用以下命令在 VM 启动脚本中启动容器:
docker run -d -p 9010:9010 <my container>
Run Code Online (Sandbox Code Playgroud)
Dockerfile 还具有:
EXPOSE 9010
Run Code Online (Sandbox Code Playgroud)
由 Dockerfile CMD 启动的 Java 进程具有以下相关参数:
"-Dcom.sun.management.jmxremote", \
"-Dcom.sun.management.jmxremote.port=9010", \
"-Dcom.sun.management.jmxremote.rmi.port=9010", \
"-Dcom.sun.management.jmxremote.local.only=false", \
"-Dcom.sun.management.jmxremote.authenticate=false", \
"-Dcom.sun.management.jmxremote.ssl=false", \
Run Code Online (Sandbox Code Playgroud)
我已使用以下命令在 gcloud 防火墙中打开端口 9010:
gcloud compute firewall-rules create jmx-port --allow=tcp:9010,udp:9010
Run Code Online (Sandbox Code Playgroud)
我已使用 netcat 验证该端口已打开并且可以与其建立 TCP 连接。
我从同一个 Docker …
我正在考虑使用 Java Visual VM 来分析生产环境。我想监控:
这种监控对 JVM 的性能有什么重大影响吗?
问题: 我有一个 J2EE 应用程序,对于使用特定数据集的给定任务(生成一些文件),该应用程序运行速度非常慢。我决定在应用程序上运行 visualvm 分析器以了解问题的性质。该应用程序使用最新的 Java 8 在 Widlfly 10 上运行。
为了避免配置复杂性,分析器(visualvm)和 Wildfly 服务器都在本地运行。
遇到的第一个问题是 JVMTI 错误 62,这是使用-Xverify:none作为 jvm 参数解决的。
第二个问题(阻塞问题)是,如果我在应用程序部署和运行时运行探查器,Wildfly 部署扫描器会抛出如下异常:
13:19:04,476 INFO [stdout] (*** Profiler Agent Communication Thread) Profiler Agent: Waiting for connection on port 5140 (Protocol version: 15)
13:19:04,517 INFO [stdout] (*** Profiler Agent Communication Thread) Profiler Agent: Established connection with the tool
13:19:04,847 INFO [stdout] (*** Profiler Agent Communication Thread) Profiler Agent: Local accelerated session
13:19:15,984 WARN [org.jboss.as.ejb3.timer] (EJB default - …Run Code Online (Sandbox Code Playgroud) 当使用 VisualVm 的堆转储时,有一个选项可以查看特定类的所有实例,但是当实例太多时,我收到此错误:
\n\n堆 walker\xef\xbc\x9a\n 内存不足\n要避免此错误\xef\xbc\x8c,请增加 NetBeans IDE 安装目录中的 etc/netbeans.conf 文件中的 -Xmx 值。
\n\n但该错误应该与 netbeans.conf 无关,它应该类似于 VisualVM.conf 文件。而且我的jdk里也没有找到配置文件。那么我该如何解决这个错误呢?
\n如果我使用适用于 Java8 的 AdoptOpenJDK HotSpot 构建,我可以使用 VisualVM 监控应用程序。如果我使用 OpenJ9 版本,VisualVM 会显示错误“无法检测到本地应用程序”。
有没有人让 VisualVM 与 OpenJ9 一起工作?