标签: jvisualvm

由于没有明显的原因,无法使用VisualVM连接到JMX/RMI服务器

我在我的远程计算机中使用以下命令启动了我的OSGi应用程序:

java -Dcom.sun.management.jmxremote \
  -Dcom.sun.management.jmxremote.port=8080 \
  -Dcom.sun.management.jmxremote.local.only=false \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false \
  -jar bin/felix.jar
Run Code Online (Sandbox Code Playgroud)

在我的本地机器上,我有VisualVM,我尝试连接到远程JVM实例:

在此输入图像描述

在此输入图像描述

在此输入图像描述

我错过了什么?

谢谢!

java jmx rmi visualvm jvisualvm

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

守护程序线程,线程计数和总启动线程数

我在Java中有一个简单的多线程echo服务器代码(它返回收到的任何内容返回给客户端).我正在分析服务器的各种资源,包括线程统计信息.以下是根据已连接客户端数量的一些统计信息.我的问题是基线(客户0的数量)与非基线的比较!

1)为什么当单个客户端连接时,总线程数增加2?(对于其余的,增加1是有意义的)

2)两个非守护程序线程是什么?!为什么守护进程最初增加1然后被修复?

它们是随机的吗?!

# clients                    0  1   2   3   4   5   6   7   8   9   10

Total Started Thread Count  15  18  19  20  21  22  23  24  25  26  27
Thread count                14  16  17  18  19  20  21  22  23  24  25
Peak thread count           14  16  17  18  19  20  21  22  23  24  25
Daemon thread count         12  13  13  13  13  13  13  13  13  13  13
Run Code Online (Sandbox Code Playgroud)

这是服务器的代码段.我正在使用RMI(用于客户端轮询消息)和服务器套接字(用于客户端发送消息).如果需要其他课程,请告诉我.

package test;

import java.io.BufferedReader;
import java.io.IOException; …
Run Code Online (Sandbox Code Playgroud)

java multithreading profiling jvisualvm

10
推荐指数
1
解决办法
1621
查看次数

是否有针对jvisualvm或NetBeans探查器的调用树视图?

JProfiler提供实时调用树视图,因此您可以实时查看使用CPU的内容并深入了解详细信息.随时将计数重置为零,冲洗,重复.

我目前没有这个工具,并试图通过免费/开放替代方案.jvisualvm和NetBeans探查器具有静态快照调用树和实时平面视图.似乎有理由会有一个实时的调用树视图(或作为一个插件),但我似乎找不到一个.

这种功能仅适用于商业分析器吗?

谢谢.

java profiling netbeans jprofiler jvisualvm

9
推荐指数
2
解决办法
2237
查看次数

jvisualvm:软件导致连接中止:套接字写入错误

当我想用jvisualvm 1.3.8描述从eclipse开始的java程序时,我在eclipse控制台中收到错误信息:

Software caused connection abort: socket write error.
Run Code Online (Sandbox Code Playgroud)

当我从命令行控制台启动没有eclipse(java -jar ...)的程序时,也会发生这种情况.我从JDK 1.8.0_20测试了jvisualvm并下载了最新版本1.3.8.这是堆栈跟踪:

Profiler Agent: Waiting for connection on port 5140 (Protocol version: 15) 
Profiler Agent: Established connection with the tool 
Profiler Agent: Local accelerated session 
Profiler Agent: Connection with agent closed 
Profiler Agent Error: Exception when trying to send response or command to client: 
java.net.SocketException: Software caused connection abort: socket write error 
*** Profiler engine warning: class load hook invoked at inappropriate time for java.lang.Throwable$PrintStreamOrWriter, loader = null 
*** …
Run Code Online (Sandbox Code Playgroud)

java sockets eclipse runtime-error jvisualvm

9
推荐指数
1
解决办法
1472
查看次数

使用jvisualvm分析Java 8 mdmp转储文件添加VM Coredump灰色/消隐

我发现了用于分析java核心转储的工具,它非常接近,但是当我打开jvisualvm并打开"文件"菜单时,"添加VM Coredump"选项不可用.当我运行溢出文章中列出的其他选项时,我没有得到线程转储.我正在深入研究jmap命令,但我想知道如何使用Add VM Coredump功能,因为它会让生活变得更轻松.

java jvisualvm

9
推荐指数
1
解决办法
855
查看次数

Java Visual VM:分析错误

我试图描述一个简单的算法:"插入排序".代码获取要排序的元素数,然后随机创建那些排序开始之后的元素.

我正在使用Visual VM进行性能分析.但是,当我开始分析时,我在控制台上看到以下警告消息:

objc[62944]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java (0x10004f4c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x1078054e0). One of the two will be used. Which one is undefined.
Profiler Agent: Waiting for connection on port 5140 (Protocol version: 15)
Profiler Agent: Established connection with the tool
Profiler Agent: Local accelerated session
Profiler Agent Warning: JVMTI classLoadHook: class name is null.
Profiler Agent Warning: JVMTI classLoadHook: class name is null.
Profiler engine warning: class 

sun.reflect.GeneratedSerializationConstructorAccessor29 that should be instrumented is not loaded by …
Run Code Online (Sandbox Code Playgroud)

java profiler profiling visualvm jvisualvm

9
推荐指数
0
解决办法
1303
查看次数

如何自动将JVisualVM附加到短期程序?

简单地阅读教程和使用JVisualVM,我可以手动将它附加到长时间运行的服务器或Swing应用程序,但我也想将它用于在一秒钟内运行的短程序.

我想我可以在控制台上安装我的程序块,连接JVisualVM,然后按一个键让程序完成它的实际工作.是否有较少的kludgy解决方法?

(这主要是出于我自己的好奇心,使用像JVisualVM而不是-Xprof或HPROF这样的抛光GUI会很不错.

java profiling jvisualvm

8
推荐指数
1
解决办法
696
查看次数

获取给定JVM实例中所有当前加载的类的列表

知道给定JVM实例当前加载哪些类是很方便的.

例如,有没有办法让他们通过JVisualVM?

编辑:我知道@ Java提供的解决方案- 获取JVM中加载的所有类的列表,但我想知道是否有办法通过JVisualVM或其他工具来实现.目前我正在反对RCP应用程序,我宁愿不必通过该java工具运行应用程序(我很懒,是的).

java jvm jvisualvm

8
推荐指数
1
解决办法
3958
查看次数

增加jvisualVM OQL结果集的最大大小

我有一个内存转储文件,它有近5000个特定对象的实例.这些对象将被写入数据库,我这样做的方法是在jvisualvm中编写一个OQL查询,以生成一个字符串,用作SQL插入,例如

select "insert into trades (id, tradeNumber) values ("+ x.id+ ", " + x.tradeNumber +");" from com.test.application.TradeObject x;
Run Code Online (Sandbox Code Playgroud)

当我通过OQL运行时,我得到一个这样的结果集 -

<code>
insert into trades (id, tradeNumber) values (1,12345); 
insert into trades (id, tradeNumber) values (2,123456);
insert into trades (id, tradeNumber) values (3,123457); </code>
Run Code Online (Sandbox Code Playgroud)

等等

但是,由于实例总数很大(大约5000),JvisualVM只显示其中的大约100个.然后出现错误消息"结果太多.请优化您的查询."

我无法优化查询,因为我必须以这种方式解析所有实例.有没有办法可以让JvisualVM向我显示所有实例而不限制结果数量?

我还看到Jvisual vm显示前100个没有任何过滤器的实例,是否可以通过OQL查询获得接下来的100个实例等等?

谢谢

java oql jvisualvm heap-dump

8
推荐指数
2
解决办法
1716
查看次数

Java VisualVM CPU使用率和处理器关联性

根据我今天的经验,我发现Oracle的Java VisualVM显示cpu使用率占总机器核心的百分比,即使受监控的JVM在操作系统中设置的进程关联性有限.这是在"监视器"选项卡中.

限制受监控的jvm taskset(在linux,Ubuntu上),当处理器允许jvm接近100%利用率时htop,VisualVM中显示的cpu百分比显然等于cpus的总数除以允许的处理器数量.监控jvm.因此,对于这种情况,比例的分辨率是不够的.

您能否确认您在其他操作系统或一般情况下观察到相同的情况?

在显示cpu使用情况时,有没有办法让VisualVM帐户只用于亲和力分配的核心?

java jvisualvm

8
推荐指数
1
解决办法
1806
查看次数