标签: visualvm

如何使用jmeter和visualVM进行负载测试?

我想为我的网站为1000万用户进行负载测试.该站点是基于Java的Web应用程序.我的方法是为所有链接创建一个Jmeter测试计划,然后为1000万用户报告.然后使用jvisualVM进行分析并检查是否存在任何瓶颈.

有没有更好的方法来做到这一点?这样做有没有现成的演示?我这是第一次这样做,所以任何帮助都会非常有帮助.

performance visualvm jmeter load-testing jvisualvm

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

VisualVM未显示任何调用CPU性能分析的方法

我正在运行Java 1.6_21 SDK构建应用程序.它是在Eclipse中构建的,我正在使用VistualVM eclipse插件在应用程序启动时启动VisualVM.

当我转到Profile选项卡并单击CPU profiling时,它只显示正在运行的THREADS,但它不显示任何METHOD调用.相当没有,没有.我搜索了很多东西,但似乎没有任何东西适合.有没有人见过这个问题?有解决方案吗?

环境:来自SDK 1.6_21的Windows XP 32位"Classic"Eclipse SDK 3.7.0 VisualVM

这对我没有任何意义.我可以获取内存堆信息,但零成员调用信息.

非常感谢任何帮助.

java visualvm

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

为什么VisualVM Profiler不会配置我的Scala控制台应用程序?

我认为这个问题与这个问题密切相关,但它已经关闭,解决方案对我来说似乎并不清楚.

我正在尝试使用VisualVM来配置我的控制台Scala应用程序.我这样做是通过启动VisualVM,启动我的Scala应用程序,在VisualVM中打开它的节点,转到"Profiler"选项卡并单击"CPU".按钮变为灰色一段时间(状态永远不会变为"分析非活动"),然后返回活动状态,但不显示任何分析数据.

该应用程序执行一些文件读取,数据处理(大约需要一分钟),stdout数据输出和退出.我还尝试添加Thread.sleep(60000)到程序的开头和结尾,以确保有足够的时间让VisualVM捕获它并完成工作,但没有任何改变.

与我链接到的相关问题不同,我没有从Eclipse或其他任何东西启动我的应用程序 - 我使用以下命令行启动它:

java -classpath myapp.jar:lib/* MyApp.Main
Run Code Online (Sandbox Code Playgroud)

所有库(包括scala-library.jar)都放入了lib/.该应用程序按预期工作.

更新:

  • 我已经尝试过YourKit Java Profiler 11.0.2但它失败了 AttachNotSupportedException.
  • 我通过手动附加代理来管理YourKit .
  • 似乎值得强调的是,我既没有从IDE(或构建工具)运行应用程序,也没有修改任何JVM选项而是修改了类路径.据我所知,这个问题似乎取决于JVM版本和用户/权限问题.目标是找出问题的实际机制以及配置所有工作的方法.

使用的软件版本:

  • YourKit Java Profiler 11.0.2
  • VisualVM 1.3.4
  • SBT 0.12.3(构建但不运行(我实际上都试过))
  • Scala 2.9.2
  • Oracle Java 1.7.0_04-b20
  • XUbuntu Linux 12.04 32位i386
  • Linux内核3.2.0-24-generic-pae

java profiling jvm scala visualvm

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

VisualVM在生产?

我考虑针对生产JVM 运行VisualVM以查看其中发生了什么 - 由于某种原因它开始消耗太多CPU.

它不能导致JVM失败,所以我试图估计所有的风险.

我在他们的网站上看到的唯一可能导致JVM失效的问题与类共享和-XshareJVM选项有关,但是在服务器模式和/或x64系统上没有启用afaik类共享.

因此,对生产JVM运行VisualVM是非常安全的,如果不是这样 - 应该考虑的风险是什么,以及运行VisualVM对JVM(以及使用它进行分析)运行的负载(CPU /内存)有多少?

谢谢

java profiling jvm visualvm

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

为什么VisualVM Profiler中不显示所有方法?

VisualVM用来看看我的应用程序运行缓慢.但它没有显示所有方法,可能没有显示延迟应用程序的所有方法.

我有一个实时应用程序(声音处理),并有几百微秒的时间缺陷.

是否有可能VisualVM隐藏自己快速的方法?

更新1

我通过采样器和猜测发现了慢速方法.这是toString()方法将其从中断开调试日志记录调用,但耗时.

Settings帮助,现在我知道怎么看:它取决于Start profiling from选项.

java visualvm real-time

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

Java对象内存占用 - Visualvm和java.sizeOf测量

我试图了解Java中对象的内存占用量.我在Java中阅读了关于对象和内存的这个和其他文档.

但是,当我使用sizeof Java库或visualvm时,我会得到两个不同的结果,根据之前的参考文献(http://www.javamex.com),这些结果都不会超出我的预期.

对于我的测试中,我使用Java SE 7 Developer Preview一个64-bits Mac带有java.sizeof 0.2.1visualvm 1.3.5.

我有三个班,TestObject,TestObject2,TestObject3.

public class TestObject
{

}

public class TestObject2 extends TestObject
{
    int a = 3;
}

public class TestObject3 extends TestObject2
{
    int b = 4;
    int c = 5;
}
Run Code Online (Sandbox Code Playgroud)

我的主要课程:

public class memoryTester
{
    public static void main(String[] args) throws Throwable
    {
        TestObject object1 = new …
Run Code Online (Sandbox Code Playgroud)

java memory visualvm object

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

为什么这种方法成为热点?

我正在写一个(简单!)线性代数库.在执行矩阵乘法,一个VisualVM的性能样品是告诉我,该算法在下面的方法乘以大矩阵(5K X 120K)时花费的它的时间为85%("自我时间",具体地):

public double next() {
    double result;

    if(hasNext())
        result = vis[i++].next();
    else
        throw new IllegalStateException("No next value");

    return result;
}
Run Code Online (Sandbox Code Playgroud)

没有太多细节(抱歉,我不能共享更多代码),这个方法是next()矩阵的"迭代器" 的方法.(你可以把这个方法住在如由单独的列迭代器,这都存放在一排迭代器之类的vis).我并不感到惊讶,这种方法被调用了很多,因为它是一个迭代器,但我感到惊讶的是,该程序花了很多时间这个方法上.这种方法做得不多,为什么要花时间在这里呢?

以下是我要问的具体问题:

  1. 我正在打击VisualVM的某些"陷阱"吗?例如,JIT是否会以某种方式混淆VisualVM,导致VisualVM将时间归因于错误的方法?
  2. 为什么该计划会花时间在这里?该方法并没有做太多.具体而言,我不认为因为缓存的效果解释这个问题vis阵列要小于乘以矩阵的数据.

如果它有用,这里是我上面粘贴的方法的jad反汇编:

public double next()
{
    double result;
    if(hasNext())
//*   0    0:aload_0         
//*   1    1:invokevirtual   #88  <Method boolean hasNext()>
//*   2    4:ifeq            32
        result = vis[i++].next();
//    3    7:aload_0         
//    4    8:getfield        #42  <Field VectorIterator[] vis>
//    5 …
Run Code Online (Sandbox Code Playgroud)

java optimization performance visualvm

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

Java VisualVM MBeans插件

我正在运行JDK 1.8.0_66 JVisualVM实用程序,并希望使用MBean浏览器来监视我的Coherence应用程序.根据Oracle教程,我必须首先安装MBeans插件.所以我去了Tools-Plugins-Available插件,没有任何可用的插件.我检查了我的JDK安装*.nbm文件,什么也没找到.

为JVisualVM安装MBeans插件需要做什么?先感谢您.

visualvm

8
推荐指数
3
解决办法
7226
查看次数

如何减少VisualVM对堆使用的影响?

我正在尝试优化应用程序的内存使用情况.不幸的是,使用-Dcom.sun.management.jmxremote运行我的应用程序并通过VisualVM连接它对堆使用产生了很大的影响.起初我认为这是我的应用程序问题,直到我写了一个非常简单的程序来确认它确实是JMX的开销.以下是活动的图像.

阅读本文之后,我开始明白这是由于VisualVM检索数据的方式,即通过连续轮询连接的应用程序.我通过查看VisualVM的内存采样器来证实了这一点.的RMI TCP连接(n)的螺纹被分配180KB /秒.

我的问题是,有没有办法减少VisualVM的堆使用影响?更改轮询间隔可能不是更好,因为我对堆信息感兴趣.如果这不可能,我们可以排除用于VisualVM的数据吗?至少我想更专注于我的应用程序.

运行代码

Object object = new Object();
synchronized (object) {
    object.wait();
}
Run Code Online (Sandbox Code Playgroud)

VisualVM的堆监视器活动

在此输入图像描述

java performance jmx visualvm

7
推荐指数
1
解决办法
933
查看次数

使用VisualVM连接到JBoss 7

我有远程JBoss 7.1服务器,我想通过使用VisualVM或JConsole连接到此服务器.

我google了一下,发现了几个关于如何使用VisualVM或JCoonsole连接JBoss 7.1的线程/教程,例如:

不幸的是,我没有通过JMX连接到我的JBoss 7.1.

您对如何使用VisualVM连接JBoss 7.1有什么想法吗?

编辑:我将-Dcom.sun.management.jmxremote.port = 1090 -Dcom.sun.management.jmxremote.authenticate = false添加到standalone.conf.bat,但我得到了一个异常:引起:java.lang.IllegalStateException: LogManager未正确安装(必须将"java.util.logging.manager"系统属性设置为"org.jboss.logmanager.LogManager").

所以,我为JAVA_OPTS添加了另一个选项:-Dcom.sun.management.jmxremote.port = 1090 -Dcom.sun.management.jmxremote.authenticate = false -Djava.util.logging.manager = org.jboss.logmanager.LogManager但是我收到的例外是:

Could not load Logmanager "org.jboss.logmanager.LogManager"
java.lang.ClassNotFoundException: org.jboss.logmanager.LogManager
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
Run Code Online (Sandbox Code Playgroud)

jmx visualvm jboss7.x

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