标签: visualvm

JvisualVM中采样器和分析器之间的区别是什么?

我发现JvisualVM中有两个插件,一个是采样器,另一个是探测器.

我还发现他们有类似的用户界面,但结果有很大差异,那么对他们来说有什么不同呢?

为什么他们有很大的不同?

java profiler visualvm jvisualvm

22
推荐指数
1
解决办法
4374
查看次数

如何为VisualVM"<未知应用程序>"命名?

JDK 1.6捆绑了一个名为VisualVM的便捷工具,可以让您检查并运行正在运行的Java进程.一个功能是它可以自动检测本地计算机上正在运行的JVM.大多数都列为"(pid xxxx)",但有些名称和图标,如VisualVM本身和其他类似NetBeans(例如,请参阅此dzone文章中的屏幕截图).

如何将我的应用程序名称和图标注入JVM,以便它在VisualVM的应用程序列表中正确显示?我的应用程序是否需要运行JRE 1.6或者我是否可以在1.5下运行?

java jmx visualvm

21
推荐指数
1
解决办法
3239
查看次数

Java VisualVM为CPU分析提供了奇怪的结果 - 还有其他人遇到过这种情况吗?

我编写了这个小型(并且效率低下)的类,并希望使用Java VisualVM对其进行概要分析.

public class Test {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        br.readLine();
        int n = Integer.parseInt(args[0]);
        int fib = fib(n);
        System.out.println(fib);
    }

    private static int fib(int n) {
        if (n < 2) {
            return n;
        }
        return fib(n-1)+fib(n-2);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果很奇怪.调用ConnectionHandler.run()完全控制了结果.

(98.2%)sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run()
(1.7%)java.lang.Thread.join(long)
(0%)java.lang.String.equals(Object)
等. .

可能有大约一百个方法分析,其中没有一个是fib(int)!

我的程序实际上将所有时间花在这些方法上是不可思议的.他们似乎是连接到我的jvm并做其事情的探查器.

我究竟做错了什么?

为清晰起见进行了编辑:如果你传入了45个n,那么这个应用程序将运行20个简单的秒.我最初分析的程序(不是斐波纳契计算器)将我的cpu上的所有四个核心固定为100%,并且我正在进行持续长达5分钟的分析运行.这些具有相同的结果,并且我的应用程序中的方法在热点方法列表中没有出现.

它随着运行而变化,但ConnectionHandler.run()始终位于顶部,通常占配置文件时间的~99%.

第二次编辑:我尝试过使用采样器,现在我得到的结果与JProfiler正在生成的结果一致.这样做的缺点是我没有得到分析带来的堆栈跟踪信息.但对于我的迫切需求,这是非常好的.

我在玩游戏时发现的东西是VisualVM在分析它们时计算方法调用的挂钟时间.

在我的特定情况下,我的应用程序有一个主线程,它启动工作线程并立即阻止等待队列上的消息.

这意味着阻塞方法似乎几乎占据了探查器的所有时间,尽管这种方法不是占用了我的CPU.

我希望sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run()方法能够很好地完成它的工作 - 但是当它终止时它会成为我应用程序中运行时间最长的方法之一 - 反复出现.

java profiling visualvm

21
推荐指数
1
解决办法
7109
查看次数

无法将远程主机连接到VisualVM

我是Java的新手,我遇到了将远程主机连接到的问题JVisualVM.

我搜索了互联网,并按照那里提到的所有步骤,但仍然无法解决问题.我遵循的步骤是:

  1. 我首先在远程服务器上创建一个jstatd.all.policy文件,然后在远程服务器上启动了jstatd $JAVA_HOME/bin.该文件包含:grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission;};

  2. 我开始Jstatdjstatd -J-Djava.security.policy=jstatd.all.policy

  3. 我在远程主机上启动了Java应用程序:

    java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false application_name
    
    Run Code Online (Sandbox Code Playgroud)
  4. 然后我开始作为JVisualVM我的本地机器的实例,当我添加远程主机时,它已连接但我无法看到任何Java进程.

任何人都可以帮我这个.

谢谢.

monitoring jmx visualvm

21
推荐指数
4
解决办法
3万
查看次数

使用VisualVM在Eclipse Indigo中配置JUnit

我如何配置JUnit测试,优先使用Eclipse集成支持?我正在尝试使用VisualVM,但显然无法完成.

我使用的是Windows 7 x64,Eclipse Indigo,jdk 1.6,jre-j9和JUnit 3(我可以使用v.4)

java profiler junit profiling visualvm

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

使用VisualVM eclipse插件发布启动项目

在"启动ModificationToolkit"期间发生内部错误.

java.lang.NullPointerException
    at org.eclipse.jdt.launching.JavaLaunchDelegate.launch(JavaLaunchDelegate.java:101)
    at org.eclipse.visualvm.launcher.java.VisualVMJavaDelegate.launch(VisualVMJavaDelegate.java:44)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Run Code Online (Sandbox Code Playgroud)

我在互联网上看到了这一点,但似乎没有解决方案.我的项目在不使用此插件的情况下启动正常,此问题也会影响我的其他项目(如果我尝试使用VisualVM启动).

使用此版本的VisualVM - http://visualvm.java.net/eclipse-launcher.html

java swing visualvm jvisualvm

20
推荐指数
1
解决办法
4414
查看次数

如何告诉visualvm在哪里找到我的源代码?

我正在运行VisualVM来分析一个简单的Java应用程序.当我双击分析窗格中的方法(希望获得更多详细信息)时,它会显示"没有为类找到源......".我知道消息来源在哪里.我如何告诉VisualVM在哪里看?

java visualvm

20
推荐指数
1
解决办法
2837
查看次数

VisualVM挂起启动"计算描述"

我有两个远程服务器,都运行最近的CentOS,运行最近的Tomcat6,最近的JDK6和VisualVM 1.3.2.

ssh -X转发在一台服务器上运行 - 我可以从该机器启动VisualVM,它可以转发并运行正常 - 我看到在远程机器上运行的所有JVM进程都是VVM中的"本地".

在第二台机器上进行ssh -X转发 - 然后运行VisualVM - 在其中显示一个带有VVM的X窗口,但它只显示一个"本地"进程 - VisualVM本身 - 而右下角有一个弹跳进度条,显示"计算描述",它永远不会结束.

我在任何地方都找不到任何相关的东西 - 有人曾经打过这个吗?我如何通过这个?

java x11 visualvm

18
推荐指数
1
解决办法
5831
查看次数

visualvm不是OpenJDK7的一部分?

在Ubuntu和Debian中,工具visualvm都不是OpenJDK 7软件包的一部分.它是Oracle JDK 7的一部分,似乎是GPL许可的.虽然在Ubuntu中它可以安装一个单独的包,但Debian中不存在这样的包.

为什么它不是OpenJDK包的一部分?

ubuntu openjdk debian visualvm

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

在使用Oracle JDK的Ubuntu 15.10上,visualvm失败并显示"No jdkhome found"

我从webupd8team/javaPPA 安装了Oracle JDK ,然后安装了该visualvm软件包.启动时visualvm,我收到以下错误消息:

[beni:~]$ visualvm
No jdkhome found
Run Code Online (Sandbox Code Playgroud)

$JAVA_HOME的设置正确/usr/lib/jvm/java-7-oracle.

此外,当从属性集开始visualvmjdkhome,我得到相同的错误:

[beni:~]$ visualvm --jdkhome $JAVA_HOME
No jdkhome found
Run Code Online (Sandbox Code Playgroud)

java visualvm oraclejdk

17
推荐指数
1
解决办法
6562
查看次数

标签 统计

visualvm ×10

java ×8

jmx ×2

jvisualvm ×2

profiler ×2

profiling ×2

debian ×1

junit ×1

monitoring ×1

openjdk ×1

oraclejdk ×1

swing ×1

ubuntu ×1

x11 ×1