标签: visualvm

为什么VisualVm不显示正在运行的tomcat中的所有线程?

我的tomcat(版本:5.5.25)运行一个应用程序,我尝试使用VisualVM进行分析(版本:1.3.2).一切看起来都不错,但并非所有的类和方法都在visualVM中显示.缺少的那些在线程[main]中运行.我知道这是因为如果我遇到断点,这就是我收到的线程名称.在main [例如[worker1],[worker2],...之外运行的类正确显示.

知道原因可能是什么?或者我可以尝试什么?

由于我运行的应用程序(称为Assentis Docbase)是闭源的,因此它们可能已经自定义了默认的tomcat配置.但是他们允许我用我自己的类来扩展框架,这就是我想要描述的那些.

VisualVM我使用下载的默认配置运行.

java profiler tomcat visualvm

5
推荐指数
1
解决办法
6331
查看次数

导出VisualVM应用程序配置,然后导入

我正在从VisualVM 1.3.2迁移到1.3.3,并希望将我设置的所有远程服务器和应用程序移动到这个新安装中.

我查看了%HOMEPATH%\ Application Data.visualvm\1.3.2并查看了模块和首选项的配置,但与我设置的应用程序无关.

请帮忙,因为我需要配置超过150台服务器.

visualvm jvisualvm

5
推荐指数
1
解决办法
3927
查看次数

VisualVM无法启动

我有一个远程Debian Squeeze服务器.我1.7.0_07手动安装了Oracle JDK ,并为jdk/bin路径中的每个二进制文件配置了替代方案.我也导出了全局JAVA_HOME变量.

# java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) Server VM (build 23.3-b01, mixed mode)
#
Run Code Online (Sandbox Code Playgroud)

服务器上有Gnome,我正在用putty连接并X-Windows forwarding启用.但是,当我尝试使用jvisualvm命令启动VisualVM时,我暂停5-10秒没有得到任何结果:

# jvisualvm
#
Run Code Online (Sandbox Code Playgroud)

当我尝试显示帮助时,我看到一个异常:

# jvisualvm --help
Usage: /usr/java/jdk1.7.0_07/bin/../lib/visualvm//platform/lib/nbexec {options} arguments

General options:
  --help                show this help
  --jdkhome <path>      path to Java(TM) 2 SDK, Standard Edition
  -J<jvm_option>        pass <jvm_option> to JVM

  --cp:p <classpath>    prepend <classpath> to classpath
  --cp:a <classpath>    append <classpath> to classpath
Exception in …
Run Code Online (Sandbox Code Playgroud)

java x11 putty visualvm

5
推荐指数
1
解决办法
2万
查看次数

了解visualvm分析器中的CPU时间

我已经开始使用visualvm来分析我在Eclipse中启动的应用程序.然后我启动visualvm,最初给出了可信的结果.

在此输入图像描述

一段时间后,监视器中出现两个进程,耗费大量时间.

在此输入图像描述

我没有故意援引这些.过了一会儿,他们消失了.它们是剖析过程中的人工制品吗?我需要担心吗?

我的例程很少出现在配置文件中,主要是他们调用的库.有没有办法显示哪些例程调用最常用的例程?

java eclipse visualvm

5
推荐指数
1
解决办法
1万
查看次数

为什么与Amazon EC2的JMX连接失败?

我在Amazon EC2实例上运行的一个服务上设置了JMX,但它无法正常工作.我正在使用VisualVM进行连接,在短暂的挂起期后,它会因超时而失败.看起来因为缺少响应数据或滞后而失败.我检查了安全组中是否启用了JMX端口,并尝试使用不启用JMX的不同端口,并且在安全组设置中未启用端口,并且两者都立即失败,因此它看起来不同.我的EC2实例和桌面都安装了Ubuntu 12.04和JDK 7.

事实证明,由于连接是SSL安全的,所以端口没有意义.我有一个私钥,不知道如何使用它与JConsole或VisualVM.

port jmx visualvm amazon-ec2

5
推荐指数
2
解决办法
5333
查看次数

在分析本地进程时jvisualvm挂起

当我使用时jVisualVM,我看到两个本地进程:VisualVM本身和我感兴趣的进程让我们调用它ProcessX.当我双击这个VisualVM过程时,一切正常.当我双击时ProcessX,应用程序卡住了,不再对应了.我用eclipse运行我的Java应用程序,和我有一个单机版jVisualVM上的Windows x64盒子.我从"C:\ Program Files\Java\jdk1.7.0_51\bin"运行jVisualVM.VisualVM菜单中将代理设置为"无代理"对我也没有帮助

java visualvm jvisualvm

5
推荐指数
1
解决办法
2627
查看次数

jvisualvm:卡在“正在加载堆转储...”屏幕上

我使用的是 jdk64,我的 java 版本是“1.6.0_24”。我的 tomcat 使用 -Xmx7196m 运行,而 jvisualvm 使用 -J-Xms2048m -J-Xmx3072m 运行。我对我的 tomcat java 进程进行了堆转储,我的.hprof文件大小约为 5.5 GB。当我尝试打开这个堆转储时,它只是停留在Loading Heap Dump...屏幕上。

我还查看了 VisualVM 在尝试打开堆转储时的堆消耗情况,但只有 500MB 左右。

注意:我确实看过jvisualvm: Stuck on “Loading Heap Dump” screen question 但它是不同的并且没有解决我的问题。

java profiling visualvm hprof jvisualvm

5
推荐指数
2
解决办法
6456
查看次数

无法在 VisualVM 中打开某些应用程序

我将 Ubuntu 14.04 与 Oracle JDK 8 一起使用。我想使用 VisualVM 检查我的应用程序的性能。我可以检查其他应用程序,如 JDownloader,但我无法检查我自己的应用程序和 Eclipse 4.3。在我全新安装 Ubuntu 之前,我使用的是 JDK 7,我没有任何问题并且在没有任何配置的情况下使用它。它提供以下日志。

SEVERE [org.openide.util.RequestProcessor]: Error in RequestProcessor com.sun.tools.visualvm.core.ui.DataSourceWindowManager$1
java.lang.IllegalArgumentException: Unexpected composite type for ThreadInfo
    at sun.management.ThreadInfoCompositeData.validateCompositeData(ThreadInfoCompositeData.java:372)
    at sun.management.ThreadInfoCompositeData.getInstance(ThreadInfoCompositeData.java:68)
    at java.lang.management.ThreadInfo.<init>(ThreadInfo.java:263)
    at java.lang.management.ThreadInfo.from(ThreadInfo.java:794)
Caused: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeBuilderViaFrom.fromCompositeData(DefaultMXBeanMappingFactory.java:1018)
Caused: java.io.InvalidObjectException: Failed to invoke from(CompositeData)
    at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory.invalidObjectException(DefaultMXBeanMappingFactory.java:1457)
    at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeBuilderViaFrom.fromCompositeData(DefaultMXBeanMappingFactory.java:1021)
    at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$CompositeMapping.fromNonNullOpenValue(DefaultMXBeanMappingFactory.java:919)
    at com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory$NonNullMXBeanMapping.fromOpenValue(DefaultMXBeanMappingFactory.java:133)
    at com.sun.jmx.mbeanserver.ConvertingMethod.fromOpenReturnValue(ConvertingMethod.java:131)
    at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:168)
    at …
Run Code Online (Sandbox Code Playgroud)

java eclipse visualvm java-8

5
推荐指数
2
解决办法
1737
查看次数

如何附加VisualVM并在应用程序启动时立即开始分析?

我可以将VisualVM附加到正在运行的应用程序,然后开始分析。

在我执行手动操作的所有时间中,目标应用程序正在运行,统计信息正在丢失。

如何在应用程序启动的同时完全开始收集统计信息?

更新

Profile Startup什么方法设置要运行的类?

在此处输入图片说明

用于应用程序设置的非常小的单元格说

-agentpath:D:/Apps/visualvm_138/profiler/lib/deployed/jdk16/windows-amd64/profilerinterface.dll=D:\Apps\visualvm_138\profiler\lib,5140
Run Code Online (Sandbox Code Playgroud)

即不包含有关应用程序位置的线索。

java visualvm jvisualvm

5
推荐指数
1
解决办法
1688
查看次数

获取从ArrayList引用的对象数,其中大小为1按类分组

我从应用程序中获得了一个堆转储,并发现有大量的ArrayLists,其中只有一个对象.我知道如何获取这些arraylists的列表,并显示包含元素的类:

SELECT list.elementData[0] FROM java.util.ArrayList list WHERE (list.size = 1)
Run Code Online (Sandbox Code Playgroud)

结果如下:

java.lang.String [id=0x7f8e44970]
java.lang.String [id=0x7f8e44980]
java.lang.String [id=0x7f8e44572]
java.io.File [id=0x7f8e43572]
...
Run Code Online (Sandbox Code Playgroud)

我想要的是得到这样的东西:

Class             | count
=================================
java.lang.String  | 100
java.io.File      | 74
...
Run Code Online (Sandbox Code Playgroud)

但我无法汇总结果或对其进行任何其他操作.我在这里找到如何将值传递给外部选择,但我无法弄清楚如何*在第一个选择旁边使用其他任何东西.

SELECT * from OBJECTS
(SELECT OBJECTS list.elementData[0] FROM java.util.ArrayList list WHERE (list.size = 1))
Run Code Online (Sandbox Code Playgroud)

java visualvm oql

5
推荐指数
1
解决办法
532
查看次数

标签 统计

visualvm ×10

java ×8

jvisualvm ×4

eclipse ×2

amazon-ec2 ×1

hprof ×1

java-8 ×1

jmx ×1

oql ×1

port ×1

profiler ×1

profiling ×1

putty ×1

tomcat ×1

x11 ×1